一、Prim算法又叫普里姆算法,无向图的最小生成树算法的一种,算法的原理是点找点,也就是找到权最小的邻近点,再找与这两个点中权最小的邻近点,以此类推,最终就能确定最小的生成树。
1、找最小权的邻近点(如果存在多个,选择其中一个),可以看到图中最小的权是 A-F,即可以先确定下来。
2、根据上一步确定的两个点A、F,找到这两个点权最小的邻近点,可以看到图中的E点满足目标。(注:遇到权一样大的,选择其中一个就好;并且选择的节点不能已经在上一步骤被选择,下同)
3、再通过A、F、E三个节点,找出第四个节点B。
4、不断执行上面步骤,最终就能确定Prim算法最终生成的树。
二、Kruskal算法(克鲁斯卡尔算法)也是无向图生成树的一种算法,与Prim算法不同的是,Kruskal算法的思想是线找线,也就是不断找最小的权,知道把所有节点都罗列出来。
1、找最小权的邻近点(如果存在多个,选择其中一个),可以看到图中最小的权是 A-F,即可以先确定下来。
2、同1理,找第二个找最小权的邻近点。
3、找到第三个。
4、不断重复上面步骤,最终所有的节点都被罗列出来,就是Kruskal算法最终生成树。