最小生成树prim、
2024-09-03 15:40:29
过年那几天确实没好好学习、在老家闲着也是闲着、可是就是没看书、
回来这几天又一直在弄个人博客、买域名云服务器备案什么的- -、 麻烦死了呢、
在腾讯花1块钱备案了一个网站www.goodgoodstudy.pw,起名字的时候实在是纠结,索性来了个无聊的
备案完成后还是决定在阿里云再备案一个网站,我也说不上原因- - 、 先凑合着用吧
最小生成树prim算法、
//prim算法生成最小生成树
void prim(MGriph G)
{
int minx,k;
sum=;
memset(vis,false,sizeof(vis)); //初始化访问顶点数组
vis[]=true; //将顶点Vo加入到最小生成树中、
for(int i=;i<numVertexes;++i) //初始化当前的最小生成树的最小权值数组
lowcost[i]=map[][i];
for(int i=;i<numVertexes;++i){
minx=INT_MAX;
for(int j=;j<numVertexes;++j) //寻找当前的最小权值顶点、
if(!vis[j] && minx > lowcost[j])
minx = lowcost[k = j];
if(minx==INT_MAX) break;
vis[k]=ture; //将最小权值顶点加入最小生成树集合 、
sum+=minx; // 记录权值的和、
for(int j=;j<numVertexes;++j) //更新当前最小生成数中的最小权值数组、
if(!vis[j] && lowcost[j] > map[k][j])
lowcost[j] = map[k][j];
}
}
要理解代码最主要是要理解lowcost数组和vis数组的作用,vis数组的话是记录当前最小生成树的顶点数,当vis[i]=ture的时候代表Vi顶点已经加入到最小生成树中来了,否者没有,lowcost数组的作用呢就是记录当前最小生成树中各顶点与其有边的顶点间的最小权值
这是我对这段代码的理解、
最新文章
- JavaScript(二) DOM
- input常用属性
- Ajax PHP项目实战
- JS中的 公有变量、私有变量 !
- python datetime模块用strftime 格式化时间
- CSS居中的方法总结
- SQL - 配置SQLServer 使其可以远程访问
- LeetCode_Letter Combinations of a Phone Number
- js中获取键盘事件
- jquery 提交数据
- socket1
- 使用CSharp编写Google Protobuf插件
- 自己实现的数据表格控件(dataTable),支持自定义样式和标题数据、ajax等各种自定义设置以及分页自定义
- netconf选用秘钥登录
- stm32开发之串口的调试
- mysqldump+系统计划任务定时备份MySql数据
- android LogConfigurator
- Hadoop学习笔记记录
- 简单理解Linux的Loopback接口
- ubuntu中文件夹的作用
热门文章
- 如何高效地在github上找开源项目学习?
- jsp里更新Clob类型字段数据
- Leetcode703.Kth Largest Element in a Stream数据流中的第K大元素
- 【水滴石穿】github_popular
- Spring_通过Bean的Factory配置Bean
- 【转】Jython安装(Win)
- javascript正则表达式知识大全
- linux 查看并关闭窗口
- IOS 后台挂起程序 当程序到后台后,继续完成Long-Running Task 任务
- Spark in action on Kubernetes - Spark Operator的原理解析