写在前面:科班出身,应届考研党,愿21考研成功上岸,冲冲冲!
目录
一、BFS算法的局限性
带权路径长度——当图是带权图时,一条路径上所有边的权值之和,称为该路径的带权路径长度
BFS算法求单源最短路径只适用于无权图,或所有边的权值都相同的图
二、Dijkstra算法
初始:从V0开始,初始化三个数组信息如下
第1轮:循环遍历所有结点,找到还没确定最短路径,且dist最小的顶点Vi,零final[j] = true
检查所有邻接自Vi的顶点,若其final值为false,则更新dist和path信息
第2轮:循环遍历所有结点,找到还没确定最短路径,且dist最小的顶点Vi,零final[j] = true
第3轮:循环遍历所有结点,找到还没确定最短路径,且dist最小的顶点Vi,零final[j] = true
第4轮:循环遍历所有结点,找到还没确定最短路径,且dist最小的顶点Vi,零final[j] = true
三、如何使用数组信息
V0到V2的最短(带权)路径长度为:dist[2] = 9
通过path[]可知,V0到V2的最短(带权)路径:V2<- -- V1<-----V4<------V0
时间复杂度:O(n^2)即O(|V|^2)
四、用于负权值带权图
结论:Dijkstra算法不适用于有负权值的带权图