实验报告
课程名称 《算法分析与设计》 实验日期 2020 年 2 月 25日 至 2020年 3 月 3 日
学生姓名 戴昊宇 所在班级 计算机184 学号 2018212212015
实验名称 Prim算法构造最小生成树
实验地点 同组人员 无
1.问题
在n个城市之间建立公路,如何在最节省经费的前提下建立这个公路网络。求最少的总耗费。
2.解析
2.设计
//输入无向图G=(V,E),V={A,B,C,D,E,F}
//建立邻接矩阵
初始化邻接矩阵
输入每条边的权值
//找到最小代价边,并返回
定义最小边,通过循环确定最后的最小边
//求权值的和
从初始点开始,遍历所有顶点,选择最小代价边,求得最小的权值和
//输出顶点连接连接顺序和最小权值和
3.分析
Prim算法:
1.定义权值和sum
2.for循环,遍历了所有顶点,求权值的和,时间复杂度为O(n)
3.for循环,遍历了所有顶点,初始化辅助数组,时间复杂度为O(n)
4.for循环,遍历所有边,在n-1时退出,选择最小代价边加入到最小生成树中;for循环遍历所有点,更新顶点的最小代价边信息,时间复杂度为O(n^2)
5.返回权值sum
所以,Prim算法时间复杂度为O(n^2)。
4.源码
https://github.com/yyqx-1128/text