2016-11-29 5 views
0

Dijkstraアルゴリズムを使ってノード間の最短経路を見つけるグラフプログラムをC#で実行していますが、各ノード間でExcelファイルにかかる時間を書き出す必要があります。私は本当に何かを考え出したり、それに関する情報を見つけることができませんでした。これを行う方法上の任意のアイデア?ここではそのためのコードです。二つ以上の間の経過時間をカウントするあなたはストップウォッチクラスを使用することができます時間を計測する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

(verticesCountは、プログラムの他の部分で使用される頂点数です)所望の部品。 Stopwatch class を参照してください。また、CSVファイルに書き込んでExcelで開くこともできます。例を参照してください。Write to a CSV file

関連する問題