算法与程序设计实验最小生成树(c语言).ppt

最小生成树 问题分析: 由于在每两个城市之间都可以建立一条通信线路,n个城市之间最多可能设置n(n-1)/2条线路,而每条线路都要付出一定的经济代价,因此,如何从中选择n-1条线路使总的耗费最少成为问题的关键。 问题等价: 用连通网来表示n个城市以及n个城市之间可能设置的通信线路,其中网中的顶点表示城市,边表示两城市之间的线路,赋于边的权值表示相应的经济代价。 建立总花费最少的通信网问题就转换为求连通网的最小生成树的问题。 最小生成树的定义: 按照生成树的定义,含n个顶点的连通网的生成树有n个顶点、n-1条边。因此,可以建立许多不同的生成树,如果一棵生成树的代价等于树上各边权值之和,那么肯定有一棵生成树的代价最小,称为最小代价生成树(简称最小生成树)。 MST性质: 假设N=(V,{E})是一个连通网,U是顶点集V的一个非空子集。若(u,v)是一条具有最小权值(代价)的边,其中u∈U,v ∈V-U,则最小生成树中必包含边(u,v)。 构造最小生成树的算法 普里姆算法的基本思想: 假设N=(V,{E})是连通图,TE是N上最小生成树中边的集合。算法从U={u0}(u0∈V),TE={}开始,重复执行下述操作:在所有u∈U, v ∈V-U的边(u,v)∈E中找一条代价最小的边(u0,v0)并入集合TE,同时v0并入U,直至U=V为止。此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树。 简言之: Prim算法 算法分析: 普里姆算法的时间复杂度为O(n2)。 该算法与网中的边的数目无关。 适用于求边稠密的网的最小生成树。 克鲁斯卡尔算法 算法分析: 克鲁斯卡尔算法的时间复杂度为O(eloge)。 该算法与网中的边的数目有关。 适用于求边稀疏的网的最小生成树。 构造最小生成树的算法 课程小结 最小生成树的定义 重点讲解了两种求最小生成树的算法 普里姆算法 克鲁斯卡尔算法 * (Minimum Cost Spanning Tree) 假设要在 n 个城市之间建立通信联络网,则连通 n 个城市只需要修建 n-1条线路,如何在最节省经费的前提下建立这个通信网? 问题: U V-U u v 算法二:(克鲁斯卡尔算法) 算法一:(普里姆算法) 取图中任意一个顶点 u ∈ U作为生成树的根,之后往生成树上添加新的顶点 v ∈ V-U。在添加的顶点 v和已经在生成树上的顶点u 之间必定存在一条边(u,v),并且该边的权值在所有连通顶点集U 和 V-U 之间的边中取值最小。之后继续往生成树上添加顶点,直至生成树上U含有 n 个顶点为止。 设置一个辅助数组closedge,来记录从顶点集U到V-U具有最小代价的边。 struct { VertexType adjvex; // U集中的顶点序号 VRType lowcost; // 边的权值 } closedge[MAX_VERTEX_NUM]; a b c d e g f 19 5 14 18 27 16 8 21 3 a e 12 d c b 7 a a a 19 14 18 14 例如: e 12 e e 8 16 8 d 3 d d 7 21 3 c 5 5 初始状态: U={a} TE={} V={a,b,c,d,e,f,g} V-U={b,c,d,e,f,g} 16 g 21 f a b c d e g f 19 5 14 18 27 16 8 21 3 a e 12 d c b g f 7 14 8 5 3 16 21 所得生成树权值之和= 14+8+3+5+16+21 = 67 A B C D E F 6 5 1 5 3 6 6 4 5 2 {} {A,C,F,D,B,E} BE 3 BE 3 {E} {A,C,F,D,B} CB 5 CE 6 CB 5 {B,E} {A,C,F,D} FD 2 CE 6 FD 2 CB 5 {B,D,E} {A,C,F} CF 4 CF 4 CE 6 AD 5 CB 5 {B,D,E,F} {A,C} AC 1 ~ ∞ ~ ∞ AD 5 AC 1 AB 6 {B,C,D,E,F} {A} TE F E D C B V-U U A B C D E F 1 5 3 4 2 返回 具体做法: 先构造一个只含 n 个顶点的子图 SG,然后从权值最小的边开始,若它的添加不使SG 中产生回路,则在 SG 上加上这条边,如此重复,直至加上 n-1 条边为止。 一句话,“不构成环的情况下,每次选取最小边” 考虑问题的出发点: 为使生成树上边的权值之和达到最小,则应使生成树中每一条边的权值尽可能地小。 克鲁斯卡尔算法的基本思想: a b c d e g

最小生成树实验报告c语言,算法与程序设计实验最小生成树(c语言).ppt相关推荐

  1. c语言张振国实验报告,基于VisualC的黄金分割法程序设计实验报告.doc

    基于VisualC的黄金分割法程序设计实验报告 新疆农业大学机械交通学院 实验报告 基于Visual C 的黄金分割法程序设计 一 .实验目的 1. 加深对机械优化设计方法的基本理论和算法步骤的理解: ...

  2. java象棋实验报告_中国象棋java程序设计实验报告

    中国象棋java程序设计实验报告 东北大学秦皇岛分校信息与计算科学系Java 程序设计实验报告专业名称 信 息 与 计 算 科 学班级学号 7080206学生姓名 彭 军指导教师 王 薇完成时间 20 ...

  3. java象棋实验报告_中国象棋java程序设计实验报告.doc

    中国象棋java程序设计实验报告.doc 东北大学秦皇岛分校 信息与计算科学系 Java 程序设计实验报告 专业名称 信息与计算科学 班级学号 7080206 学生姓名 彭 军 指导教师 王薇 完成时 ...

  4. python猜拳小游戏实验报告_Java猜拳小游戏程序设计实验报告

    实验题目:猜拳小游戏 实验要求: 用 java 编写一个人机对战的猜拳小游戏.人选择性出拳,电脑随机出拳,判断 输赢,记录输赢情况.有简单的操作界面. 实验内容: 1 .问题分析过程: ( 1 )首先 ...

  5. c语言选择结构程序设计实验报告6,c语言-选择结构程序设计实验报告4.doc

    c语言-选择结构程序设计实验报告4.doc 实验报告 实验题目:选择结构程序设计 实验目的: 了解C语言表示逻辑量的方法(以0代表"假"以非0代表"真"). 学 ...

  6. c语言程序设计循环结构实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc...

    C语言程序设计实验报告选择与循环结构程序设计 学 生 实 验 报 告 学 院: 软件与通信工程学院 课程名称: C++与程序设计 专业班级: 通信121 姓 名: 学 号: 学生实验报告(2) 学生姓 ...

  7. c语言选择循环实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc

    C语言程序设计实验报告选择与循环结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的 ...

  8. c语言循环结构程序设计实验报告,c语言循环结构程序设计实验报告

    c语言循环结构程序设计实验报告 云南大学数学与统计学实验教学中心实验报告课程名称:程序设计和算法语言 学期: 2012~2013 学年下学期 成绩:指导教师: 学生姓名: 学生学号实验名称:循环结构程 ...

  9. C语言实验报告4云南大学,C语言循环结构程序设计实验报告.doc

    C语言循环结构程序设计实验报告.doc 云南大学数学与统计学实验教学中心实验报告课程名称程序设计和算法语言学期 20122013学年下学期成绩指导教师学生姓名学生学号实验名称循环结构程序设计实验编号四 ...

最新文章

  1. FPGA中时钟相关概念
  2. Linux ext2文件系统小结
  3. 纯CSS 实现组织架构图,学习
  4. php函数变成变量,为什么我不能在PHP函数中将函数作为默认变量提供?
  5. 为什么美国程序员工作比中国程序员工作轻松、加班少?
  6. go语言离线查看说明文档
  7. php静态函数作用,php – OOP中静态函数有什么用?
  8. 数学--数论--Miller_Rabin判断一个大数是不是素数(随机算法)
  9. eclipse 创建 maven web 项目教程
  10. access设置0字段为null是因为类型转换失败_Apache Pulsar 2.6.1 版本正式发布:2.6.0 加强版,新增 OAuth2 支持
  11. IT男几时而立(上)
  12. php获取汉字拼音首字母的方法
  13. 软件设计师中级考试经验总结
  14. 天池大数据竞赛-河北高校邀请赛——二手车交易价格预测-初赛第22名
  15. 注册会计师怎么注册非执业?注会执业与非执业有何区别
  16. Chrome 各版本下载地址大全
  17. Yar 搭建 RPC 服务
  18. 京东商品列表API接口-(item_search-按关键字搜索京东商品API接口),京东API接口
  19. 精美UI静态界面欣赏
  20. Java实现 LeetCode 493 翻转对

热门文章

  1. CentOS 7安装fail2ban+Firewalld防止SSH爆破
  2. 亚信产业互联网生态亮相2016南京软博会
  3. RabbitMQ 发布/订阅
  4. Qlikview 的服务器
  5. angularJs的学习笔记
  6. WebPart(SharePoint)中如何使用自定义的Javascript和css样式
  7. jsp内置对象pageContext和config对象
  8. Eclipes的使用小技巧
  9. Uva1595 对称轴
  10. [转] domeOS 环境搭建 自动化构建部署