三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

关于图论【最短路径之Bellman_ford 算法(队列优化)|卡码网94.城市间货物运输的思考】

关于图论【最短路径之Bellman_ford 算法(队列优化)|卡码网94.城市间货物运输的思考】

目录

二、本题代码

三、关键思路

四、优化原因

五、注意事项


// 展示完整题目

二、本题代码

// 展示完整代码

三、关键思路

1、用队列把当前遍历节点所指向的节点记录到队列里,更新在队列里的松弛有意义的节点的最短距离

四、优化原因

1、因为单纯的Bellman_ford算法会进行很多次无意义的松弛

(比如一开始的时候,只有起点1所指向的节点能更新最短距离,但是第一条输入的边是5 6 -2,这个时候起点1和结点5根本就没有相连,所以就算进行了一次循环,也不会做任何操作,就浪费了时间)

2、时间复杂度更低

五、注意事项

1、邻接表在定义的时候要先写好数组的位置个数

2、邻接表在加入结构体的时候要push_back(结构体名(成员变量1,成员变量2))

// 注意这个结构体名要写出来

← 返回列表