摘要: 在图论中,求MST的Prim算法和求最短路的Dijskra算法非常像。可是我一直都对这两个算法处于要懂不懂的状态,现在,就来总结一下这两个算法。最小生成树(MST)—Prim算法:算法步骤:•将顶点集V分成两个集合A和B,其中集合A表示目前已经在MST中的顶点,而集合B则表示目前不在MST中的顶点。•寻找与集合A连通的最短的边(u,v),将这条边加入最小生成树中。(此时,与(u,v)相连的顶点,不妨设为Bi,也应加入集合A中。•重复第二步,直至集合B为空集。正确性证明:1、由归纳法可知,只需要证明 “每次向集合A中加入一条边后都能保证,集合A这个生成树是关联到集合A中所有点的最小生成树”,就能 阅读全文
posted @ 2013-11-30 23:17 Plumrain 阅读(3218) 评论(0) 推荐(0) 编辑
摘要: 并查集是一个高效的数据结构,最简单的作用是用来判断图中的两个点是不是属于同一个连通分量。我们可以将图中的每一个连通分量看成一个集合,每个集合都有一个特征值。比如{1,2,3,4}的特征值为1,那么记f[1] = f[2] = f[3] = f[4] = 1,则这样可以通过判定两个点的f值来判定是不是属于同一个连通分量。然后,我们用树的形式来记录集合,并且这个树只需要包含集合中的所有点即可,而不需要在意树的具体形式。而这个集合的特征值,则为根节点的节点编号。这样的话,如果该树是条长长的链,则每次求叶子节点的f值时都需要几乎遍历所有节点,这样的话时间复杂度就会很高。所以,我们每次求了一个点的f值都 阅读全文
posted @ 2013-11-30 01:20 Plumrain 阅读(296) 评论(0) 推荐(0) 编辑