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) - 适用于稀疏