mwbr.net
当前位置:首页 >> 请教prim算法正确性的证明 >>

请教prim算法正确性的证明

为了减少不必要的麻烦,可以不妨设图中所有边的权重都不同,这样最小生成树是唯一的 然后直接用反证法就行了 如果Prim算法得到G,而最小生成树是T 设在生成G的过程中第一次产生的不在T中的边是e,而在G中去掉e得到的两个连通分支记为V1和V2,那...

不能。Prim是求最小生成树的算法,不能等效为最短路径。如图(参考自《王道考研系列——数据结构》) 但是Dijkstra算法,和Floyd算法可以求最短路径。

为了减少不必要的麻烦,可以不妨设图中所有边的权重都不同,这样最小生成树是唯一的 然后直接用反证法就行了 如果Prim算法得到G,而最小生成树是T 设在生成G的过程中第一次产生的不在T中的边是e,而在G中去掉e得到的两个连通分支记为V1和V2,那...

按产生最小生成树边的次序 , , , ,

贪心 具体证明可以看《算法导论》最小生成树那章

边数较少可以用Kruskal,因为Kruskal算法每次查找最短的边。 边数较多可以用Prim,因为它是每次加一个顶点,对边数多的适用。

到C时可以得到的结果是:到2的最短长度为5,到5的最短长度为6,所以选最小的那个长度为5,即选择下一个连接节点为2,即得到了D图

贪心过程. 首先,把图中的点分成两种,已连通和未连通的,我把它们分别称为"黑"和"白"点. 一开始时,图中全是白点,没有黑点.算法的第一步,随机选出一个白点,染成黑色. 然后开始一个重复的过程: 从当前图的边中寻找这样的一些边:它的其中一个端点是黑...

对于这种比较高级的算法代码直接看程序会比较蒙,你就光看我的算法流程吧,prim算法用的是贪心算法的思想,即每一步都作出局部的最优解,关于prim算法为什么能用贪心算法的证明,你可以参考《计算机算法设计与分析》这本书。(我反正不想看那么...

令到图中所有节点都连通的最小代价.就是最小生成树 简单点说 有几个城市 你要设计一个路线 这个路线能走完所有的这几个城市 而且路程最短 这个路线就是最小生成树的含义

网站首页 | 网站地图
All rights reserved Powered by www.mwbr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com