最短路径(dijkstra算法)
2016-05-05 23:58
225 查看
带权有向图,求源到其他所有各顶点的最短路径长度。
单源最短路径问题,但不能处理带负权边的图
最短路:dijkstra算法
算法的实现模板:
单源最短路径问题,但不能处理带负权边的图
最短路:dijkstra算法
算法的实现模板:
#define MaxN 10010 //MaxN是点的个数 #define MaxInt 200000000 //MabInt表示不可达 int map[MaxN][MaxN],dist[MaxN]; bool mark[MaxN]; int start,end; int dijlstra() { for(int i=1;i<=end;i++) dist[i]=MaxInt; memset(mark,0,sizeof(mark)); dist[start]=0; //把起点并入集合,搜索的就可以从起点寻找第一条最短的边了 for(int i=1;i<=end-1;i++) { min1=MaxInt; for(int j=1;j<=end;j++) //查找到原集合的最短的边 { if(!mark[j] && dist[j]<min1) { min1=dist[j]; minj=j; } } mark[minj]=1; //每并入一个点都要对原来的变进行修正,保证任意时刻源点到目标点的距离都是最短的 for(int j=1;j<=end;j++) { if(!mark[j] && map[minj][j]>0) { temp=dist[minj]+map[minj][j]; if(temp<dist[j]) dist[j]=temp; } } } return dist[end]; }
相关文章推荐
- 手把手教你用ViewPager自定义实现Banner轮播
- Dubbo项目实战初探(一)
- 第七讲 项目3 输入时间求周工资
- hdu 2824 The Euler function 欧拉函数打表
- 计算机系统结构 计算机指令集结构
- Maven profile结合Maven AntRun Plugin实现不同环境配置文件分离打包
- 水平垂直居中
- 【原创】微信双开是定时炸弹?关于非越狱iOS上微信分身高危插件ImgNaix的分析
- 计算机系统结构 计算机系统结构的基本概念
- Leetcode 63. Unique Paths II 路径搜寻2 解题报告
- 劈荆斩棘:Gitlab 部署 CI 持续集成
- 20150206--JS巩固与加强4
- Unity5.0 EventSystem事件系统的详细说明
- android音乐播放器之在线播放功能的实现
- opencv3.1 + cmake3.5.2 + vs2015 配置
- circle area
- 本博客纯粹记录自己的java,Android学习过程
- #奇葩论--在C语言中利用函数递归创建链表#
- [生活]让人伤心的“百度”
- text() or html() 获取 td 内容