2021-01-06

作者: 预眸丶 | 来源:发表于2021-01-06 23:23 被阅读0次

    迪杰拉斯算法:单源-----[O(n^2)]    全图-----[O(n^3)]

    需要构造结点去记录信息:该点下标,起始点到该点花费多少,该点其来源点。通过优先队列排列起始点到其他点的花费,来获得现阶段到该点的最短路径,则为实际的最短路径。通过设置visited标记是否已经找到最短,则在队列中拥有相同下标的点无效。同时用数组记录所有点的father,最后直接通过回溯求得路径。


    佛洛依德算法:[O(n^3)]

    无需其他内容,直接三层循环,k,i,j arr[i][j] = min(arr[i][j],arr[i][k]+arr[k][j]),来获得最短路径,同时使用arr<string>来获得路径。注意路径重叠处应该消去。

    相关文章

      网友评论

        本文标题:2021-01-06

        本文链接:https://www.haomeiwen.com/subject/jbkaoktx.html