2016-11-29 3 views
0

Я выполняю программу графа в C#, которая использует алгоритм Дейкстры для поиска кратчайшего пути между узлами, но мне нужно экспортировать время, которое требуется между каждым узлом, в файл excel. Я действительно ничего не смог придумать или найти какую-либо информацию об этом. Любые идеи о том, как это сделать? Вот код для него. (VerticesCount это количество вершин используется в других частях программы)Измерение времени Алгоритм Дейкстры занимает между узлами

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