zoukankan      html  css  js  c++  java
  • 贪心算法-最小生成树Kruskal算法和Prim算法

    Kruskal算法:

    不断地选择未被选中的边中权重最轻且不会形成环的一条。

    简单的理解:

    不停地循环,每一次都寻找两个顶点,这两个顶点不在同一个真子集里,且边上的权值最小。

    把找到的这两个顶点联合起来。

    初始时,每个顶点各自属于自己的子集合,共n个子集合。

    每一步操作,都会将两个子集合融合成一个,进而减少一个子集合。

    结束时,所有的顶点都在同一个子集合里,这个子集合就是最小生成树。

    例子:

    伪代码:

     Prim算法:

    G=(V,E),S是V的真子集,如果u在S中,v在V-S中,且(u,v)是图的一条边,称之为特殊边,且(u,v)是所有特殊边中最短的,那么,(u,v)这条边一定在最小生成树中。

    任意指定一个顶点作为起始点,放在S中。

    每一步将最短的特殊边放入S中,需要n-1步,即可把所有的其他的点放入S中。算法结束。

    例子:由节点A开始。

     伪代码:

  • 相关阅读:
    VMware Workstation 15 安装教程
    Kail更新源、输入法、浏览器
    Kali Linux 下载、引导、安装
    dwr超时
    jsp获取web的跟路径
    java线程安全
    jsp快速回顾
    在web.xml中可以设置jsp标签吗?
    axis2--生成的wsdl文件方法的参数问题
    java删除文件
  • 原文地址:https://www.cnblogs.com/fengxw/p/6092243.html
Copyright © 2011-2022 走看看