测量时间Dijkstra的算法在节点之间进行

时间:2016-11-29 21:31:12

标签: c# algorithm graph nodes dijkstra

我在C#中使用Dijkstra算法来查找节点之间的最短路径,但是我需要将每个节点之间的时间导出到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);
    }

1 个答案:

答案 0 :(得分:0)

您可以使用秒表类来计算两个或多个所需部件之间的经过时间。见InitialMagnitifcation 此外,您可以写入CSV文件以使用excel打开它。查看示例:Stopwatch class