码迷,mamicode.com
首页 > 编程语言 > 详细

算法分析与设计实验报告 Project1

时间:2021-03-09 13:34:48      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:project   生成树   连通图   步骤   algo   com   hub   大小   初始   

  1. 问题
    我们定义无向连通图的最小生成树为边权和最小的生成树

  2. 解析
    求最小生成树通常有两种做法:
    1.Kruskal
    将边权从小到大加边,若加边以后成环则放弃加边,直到加到n – 1条边,结束。(n为点集大小)加得到的边集就构成了一颗最小生成树。
    2.Prime算法
    用集合A,B分别表示得到的点集和未得到的点集,初始时刻A为空,B为所有点。
    维护出A到B各个点的最小距离,每次将最小距离所在的边加入边集和对应的点加入A,移除B。重复上述步骤,直到B空,得到的边集就是要求的最小生成树。

  3. 设计

  4. Kruskal

  5. Prim
    \

  6. 分析
    n表示点数,m表示边数

  7. Kruskal
    如果我们选用O(mlogm)的排序算法,并且使用并查集优化判环,那么复杂度显然是
    O(mlogm)。(α(m) < logm)

  8. Prim
    每次用点来更新,用类似于最短路的方法把新加入的点松弛,如果我们使用堆优化来快速找出最短的边集,复杂度应当是O((n+m)logn)。(logn来自每次找到dis最小的点)

  9. 源码
    https://github.com/MQFLLY/Algorithm-Class-codes/blob/main/project1

算法分析与设计实验报告 Project1

标签:project   生成树   连通图   步骤   algo   com   hub   大小   初始   

原文地址:https://www.cnblogs.com/hznumqf/p/14502313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!