Prim和Dijkstra算法的区别
来源:互联网 发布:js模板引擎 编辑:程序博客网 时间:2024/05/06 15:55
转自:http://www.cnblogs.com/huiliu/archive/2011/04/15/2017228.html点击打开链接
在图论中,Prim算法是计算最小生成树的算法,而Dijkstra算法是计算最短路径的算法。二者看起来比较类似,因为假设全部顶点的集合是V,已经被挑选出来的点的集合是U,那么二者都是从集合V-U中不断的挑选权值最低的点加入U,那么二者是否等价呢?也就是说是否Dijkstra也可以计算出最小生成树而Prim也可以计算出从第一个顶点v0到其他点的最短路径呢?答案是否定的,否则就不必有两个算法了。
二者的不同之处在于“权值最低”的定义不同,Prim的“权值最低”是相对于U中的任意一点而言的,也就是把U中的点看成一个整体,每次寻找V-U中跟U的距离最小(也就是跟U中任意一点的距离最小)的一点加入U;而Dijkstra的“权值最低”是相对于v0而言的,也就是每次寻找V-U中跟v0的距离最小的一点加入U。
一个可以说明二者不等价的例子是有四个顶点(v0, v1, v2, v3)和四条边且边值定义为(v0, v1)=20, (v0, v2)=10, (v1, v3)=2, (v3, v2)=15的图,用Prim算法得到的最小生成树中v0跟v1是不直接相连的,也就是在最小生成树中v0v1的距离是v0->v2->v3->v1的距离是27,而用Dijkstra算法得到的v0v1的距离是20,也就是二者直接连线的长度。
0 0
- Dijkstra和Prim算法的区别
- Prim和Dijkstra算法的区别
- dijkstra算法与prim算法的区别
- Prim算法与Dijkstra算法的区别
- Prim算法与Dijkstra算法的区别
- dijkstra算法与prim算法的区别
- Prim算法与Dijkstra算法的区别
- Dijkstra算法与Prim算法的区别
- dijkstra算法与prim算法的区别
- 图的 Prim算法和Dijkstra算法
- Prim算法和Dijkstra算法的异同
- 比较Dijkstra算法和最小生成树prim算法之间的区别
- prim 与 dijkstra 的区别
- 图的邻接矩阵实现(包括PRIM和DIJKSTRA算法)
- 两个极其相似的算法Prim和Dijkstra
- Prim算法、Kruskal算法和Dijkstra…
- Dijkstra算法与Prim算法的异同
- Dijkstra和Prim算法 【含数学证明】
- 重启Mysql -- 笔记
- 数字图像处理
- matlab eigs 报错:错误使用 eigs/checkInputs/LUfactorAminusSigmaB (line 991) 移动的运算符是单数。shift 是特征值。
- Apache MINA 2.0 用户指南
- 文件关联修复工具(用文本文档保存后后缀修改为bat)
- Prim和Dijkstra算法的区别
- spring中xml的头文件
- 在2017年,如何将你的小米4刷上Windows 10 mobile?(后附大量图赏)
- 使用Echarts柱形图表动态加载数据且颜色的独立设置 bar
- 数字图像处理 图象复原
- TIJ.one 从环境配置到运行
- a*入门
- Elasticsearch 存储方式和管理优化细节
- 支付宝API接口--移动端网页支付(沙箱)