2016-11-29 70 views
0

我正在C#中使用Dijkstra算法来查找节点之间的最短路径,但我需要将每个节点到Excel文件之间的时间导出。我真的无法想出任何东西或找到任何有关它的信息。如何做到这一点任何想法?下面是它的代码。(verticesCount是在程序的其它部分使用的顶点数量)测量时间Dijkstra的算法需要在节点之间

public static void Dijkstra(int[,] graph, int source, int verticesCount) 
      { 
       int[] distance = new int[verticesCount]; 
       bool[] shortestPathTreeSet = new bool[verticesCount]; 

       for (int i = 0; i < verticesCount; ++i) 
       { 
        distance[i] = int.MaxValue; 
        shortestPathTreeSet[i] = false; 
       } 

     distance[source] = 0; 

     for (int count = 0; count < verticesCount - 1; ++count) 
     { 
      int u = MinimumDistance(distance, shortestPathTreeSet, verticesCount); 
      shortestPathTreeSet[u] = true; 

      for (int v = 0; v < verticesCount; ++v) 
       if (!shortestPathTreeSet[v] && Convert.ToBoolean(graph[u, v]) && distance[u] != int.MaxValue && distance[u] + graph[u, v] < distance[v]) 
        distance[v] = distance[u] + graph[u, v]; 
     } 

     Print(distance, verticesCount); 
    } 

回答

0

您可以使用秒表类两个或两个以上之间计数的经过时间所需的部分。另请参阅Stopwatch class 另外,您可以写入CSV文件以使用excel打开它。看一个例子:Write to a CSV file