Dijsktra's algorithm in C#

本文关键字:algorithm in Dijsktra | 更新日期: 2023-09-27 18:27:51

我正在尝试用C#实现Dijsktra的算法。

我的代码在从最短路径树中尚未包含的顶点集中查找距离值最小的顶点的函数中存在错误。

错误显示使用未分配的局部变量"min_index"并且它发生在返回min_index时;

你能告诉我我做错了什么吗?

这是函数的代码=

    // Utility function to find the vertex with minimum distance value, from 
    // the set of vertices not yet included in shortest path tree
    int minDistance (int[] dist, bool[] sptSet)
    {
        // Initialize min value
        int min = INT_MAX, min_index;
        for (int v = 0; v < V; v++)
        {
            if (sptSet[v] == false && dist[v] <= min)
            {
                min = dist[v];
                min_index = v;
            }
        }
        return min_index;
    }

谢谢。

Dijsktra's algorithm in C#

您的方法可能返回从未设置过的min_index的值
您应该在以下时间之前对其进行初始化:

int min = INT_MAX;
int min_index = -1;

我认为,如果您的if条件每次都失败,您将尝试返回一个未分配的值。