Prim算法 kruskal算法的简单证明

prim算法证明 :

对于最小代价生成树中的ai点

删除与他相连接的k条边

最小连通图成为 k+1个连通子图 

选取ai点连接外界的最小边 a1到a2

一定是最小树中的一条边 

对于最小代价生成树中的a1 a2两点

删除他们与外界相连接的k`条边

连通图成为k`+1个联通子图

他们与外界相连接的最小边ai 到a3

一定是树中的一条边

........

按照以上步骤可以确定所有n个点的n-1条边

kruskal证明

由prim算法可知 

连接一个 最小生成树的子图与外界的最小边一定是最小生成树中的边

按照kruskal算法选取的第一个边

a1到a2,是a1连接外界的最小边

由prim算法可知属于最小生成树

由kruskal算法找到的第二个边a3(可能等于a1或a2) 到a4(可能等于a1或a2) 

当作a3所属的最小生成树连接到外界的最小边(更小的要么已经被选 要么已经和已经确定的边形成回路)

由prim算法可知属于最小生成树 

........

按照以上步骤可以确定所有n个点的n-1条边

猜你喜欢

转载自www.cnblogs.com/luozhonghao/p/9016258.html