- 823
- 0
- 约1.09万字
- 约 12页
- 2021-11-25 发布于河北
- 举报
算法设计与分析
1.编写 prim 算法求最小带权生成树,并分析其时间复杂度和结果。
一、问题描述:
题目的要求使用 prim 算法从一个带权无向完全图中选择 n-1 条边并使这个
图仍然连通 (也即得到了一棵生成树 ),同时还要考虑使树的权最小。
二、算法设计与分析:
1.算法设计:
使用 prim 算法构造最小生成树具有以下性质: (1)假设 N=(V,{E}) 是一个连
通图, U 是顶点集 V 的一个非空子集。若 (u,v)是一条具有最小权值的边,其中 u
包含于 U,v 包含于 V-U ,则必存在一颗包含边 (u,v) 的最小生成树。也可以说,
我们维持一个集合 S 包含与 V ,在它上面已构造了到这步为止的生成树,初始,
S={s} 。每次迭代我们在 S 中增加一个结点,把结点 v 加入 S 能使权值
min(e)=(u,v):u 属于 S,C(e)达到最小,并且包含了生成树中达到这个最小值的边
e=(u,v)。这样就解决问题了。
2.算法描述:
从 U={u0},u0 属于 V ,S={} 开始,重复执行以下步骤:在所有 u 属于 U ,v
属于 V-U 的边(u,v)属于 E 中找到一条权值最小的边 (u0.v0)并入集合 S,同时 v0
并入 U ,知道 U=V 为止,此时 S 中必有 n-1 条边, 则 T=(V,{S}) 为 G 的最小生成
树。
3.时间复杂度: O(n2) ,n 为顶点数。
三、程序实现:
1.程序设计的基本思路:
(1)构造图函数。初始状态各个顶点都是独立的,根据 PRIM 算法,构造邻
接矩阵,将各条边的权值写进矩阵。再将各个点的权值排序,选择权最小的边 ,
知道所有的顶点以 n-1 条边连接即结束,生成最小生成树。
(2)程序内部实现的说明:本程序采用嵌套及其循环调用的方法实现最小生
成树。
采用调用 PRIM 算法函数 void prim() 。程序流程图为:
开始
定义邻接矩阵数组 tb[][] ,权值
排序数 key[] 组和结点数组 p[];
定义结点数和边数变量 n,m ,
中间变量 i 、j ,和当前两结点
与边变量 u, v, w ;
将矩阵全部初始化为
INT_MAX
输入结点序号和相应权值
调用 prim 算法
结束
Prim 算法详解:
a.将结点锁定变量锁定到第一个结点上;
b.将结点的所有边权值排序(输入到 k[ ] );
c..找出其中最小的非零值存入变量 min ;将 min 的值加到总的权值变量
total ;
d.输出最小权值边的两个结点及权值;
e.将这条边的权值置为 0;
f. 当此结点为最后一个结点时,跳至 g 执行;否则判断刚才连通的第二个
结点是否可以作为下次连通的起点。如果是则以此结点作为起点,跳入
您可能关注的文档
最近下载
- 明代宗教信仰与思想控制.docx VIP
- 江苏省南通市2024-2025学年高二上学期期末学业质量监测语文试卷(含答案).pdf VIP
- 国就有成人演出的电影了?想看就要冒生命危险.pdf VIP
- 综合素质练习题及答案.doc VIP
- 2020-2021学年北京高三化学二轮复习 反应原理型简答题(突破二卷)(word版 含答案).docx VIP
- 电力拖动控制线路安装与检修(白银矿冶职业技术学院)知到智慧树答案.docx VIP
- 煤炭巷道掘砌工(高级工)资格考试题库(全真题库).docx VIP
- 影像叙事中情感共鸣生成机制.docx VIP
- 同轴二级圆柱齿轮减速器的设计(硬齿面).doc VIP
- 基于GPU多线程多通道图像高速重构方法、设备及介质.pdf VIP
原创力文档

文档评论(0)