ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

代码随想录算法训练营第五十九天|dijkstra(堆优化版)精讲,Bellman_ford 算法精讲

代码随想录算法训练营第五十九天|dijkstra(堆优化版)精讲,Bellman_ford 算法精讲

Bellman_ford 算法精讲

bellman ford算法的三部曲:

1. initialization(可以设置n+1点)1到1的距离为0, 1到2, 1到3,。。1到n的距离为∞

2. 进行(v-1)轮松弛(relax the edge) == (对每一条边的操作)

3. 如果大于v轮还在更新,说明这有负权回路 -- 需要使用其他方法

dijkstra(堆优化版)精讲

heap优化的核心思想:不再盲目iterate all nodes, 而是维护一个priorty (heap),里面只放我们要关注的点

堆顶永远是距离最小的节点,取出他的操作只需O(logN)

Dijkstra三部曲复习:

1. 选源点到哪个节点近且该节点未被访问过

2. 该最近节点被标记为visited

3. 更新非访问节点到源点的距离(update minDist)

复习:图的存储:1. 邻接matrix(太稀疏会浪费space),2. 邻接表(array + linked list) - 适用于稀疏

返回列表