博主初学数据结构与算法,在学习图结构的时候,遇到prim算法时,一头雾水,后来在看到一大牛的博文顿时豁然开朗,有兴趣的朋友可以参看:http://blog.youkuaiyun.com/luoshixian099/article/details/51908175,为了以后能够更好的学习,博主准备记录下自己的对prim算法的理解。
prim算法的目的:在加权连通图中找到最小路径实现全节点连通。比如下图,寻找最短路径。很显然是(B,C),(A,C)
而如果对于一颗非常复杂的图呢?
看了一下百度百科的,反正我是没有看进去,我们可以直接看图来了解:
一般的想法是,首先,我们随便选取一个节点,比如A,则我们要从其他节点中选择一个最小的权值路径,与A相连的ABCDEF权值分别为(0 5 2 ∞ 6 4),其中与自己和不通的路径权值均表示为0.后面比较的时候排除0。即可用for循环寻找最小权值C点
接下来如何寻找下面一个最小权值节点呢?这一步应该是该算法的核