PRIM 基于贪心
KRUSKAL 基于并查集
prim的证明 1,已知被弃选的当前边AB是第k轮所有备选边中到集合的距离最小的,A在集合内,B当前在集合外 2,当把所有点加入集合后,再加入边AB 3,由于所有点都在集合中,那A点和B点在加入边AB之前就联通了,再加入AB边,那A到B就是个环 4,由于边AB在环中,那A点,B点也必在环中 5,可在环中找到另一个点C,它是环上不同于B点的与A连通的点 6,显然边AC也在之前第K轮的备选边中(因为第K轮A是集合内点,C是集合外点) 7,那由于AB是第k轮备选边中最短的,显然有AB < AC 8, 那可以把AC删掉,替换成AB,环上的点依旧联通 即证:一定会选边AB
kruskal的证明
1,已知被弃选的边AB是当前可选的边中最小的,且A,B不在一个联通块中 2,当把所有点加入集合后,再加入边AB 3,由于所有点都在集合中,那A点和B点在加入边AB之前就联通了,记从A到B的这条通路为AB1 4,再加入AB边,那A到B就是个环 4,由于在弃选AB时,A,B不在一个联通块中,AB1在当时也就不联通,意味着AB1至少存在一条边x未加入 5,那x与AB都是弃选AB时的可选边,由于AB最小,有x > AB 6,所以可以删去x,连上AB,保证结果不会变差,并联通性不变 即证:一定会选边AB
讲了跟没讲一样
这个证明y总有讲过吗?如果讲过,再哪里看?
prim的证明
1,已知被弃选的当前边AB是第k轮所有备选边中到集合的距离最小的,A在集合内,B当前在集合外
2,当把所有点加入集合后,再加入边AB
3,由于所有点都在集合中,那A点和B点在加入边AB之前就联通了,再加入AB边,那A到B就是个环
4,由于边AB在环中,那A点,B点也必在环中
5,可在环中找到另一个点C,它是环上不同于B点的与A连通的点
6,显然边AC也在之前第K轮的备选边中(因为第K轮A是集合内点,C是集合外点)
7,那由于AB是第k轮备选边中最短的,显然有AB < AC
8, 那可以把AC删掉,替换成AB,环上的点依旧联通
即证:一定会选边AB
kruskal的证明
1,已知被弃选的边AB是当前可选的边中最小的,且A,B不在一个联通块中
2,当把所有点加入集合后,再加入边AB
3,由于所有点都在集合中,那A点和B点在加入边AB之前就联通了,记从A到B的这条通路为AB1
4,再加入AB边,那A到B就是个环
4,由于在弃选AB时,A,B不在一个联通块中,AB1在当时也就不联通,意味着AB1至少存在一条边x未加入
5,那x与AB都是弃选AB时的可选边,由于AB最小,有x > AB
6,所以可以删去x,连上AB,保证结果不会变差,并联通性不变
即证:一定会选边AB
讲了跟没讲一样
这个证明y总有讲过吗?如果讲过,再哪里看?