2016-11-29 73 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