图论最短路径 Dijkstra算法和模板
来源:互联网 发布:实况足球手柄按键mac 编辑:程序博客网 时间:2024/05/19 12:40
From:http://blog.sina.com.cn/s/blog_61533c9b0100iaj4.html
Dijkstra算法是用来求单源最短路径的算法。时间复杂度O(N^2);
注意:1,不能求含有负权的图,含有负权可以采用Bellman-ford和SPFA算法
算法思想:把所有的边分成两个集合A,B。集合A表示已经求出最短路径的点,不断扩展集合A,减少集合B。每一扩展就从结合B中找出到源点距离最短的点,加入到A。
算法模板:
矩阵存储:
void Dijkstra(int M,int Source) //Source is the source,M is the number of point; { int dis[100]; //The distance to the source int map[100][100]; //The distance of each two distance bool visit[100]; //If the point has been visited; memset(dis,0,sizeof(dis)); memset(visit,false,sizeof(visit)); int sta=Source; visit[sta]=true; //sta is source for(i=0;i<=M;i++) { int m=INT_MAX; int mark=sta; for(j=0;j<=M;j++) if( visit[j]==false && sta!=j)//算法核心代码 { if( map[sta][j]!=0 && dis[j]>dis[sta]+map[sta][j]) dis[j]=dis[sta]+map[sta][j]; else if( map[sta][j]!=0 && dis[j]==0) dis[j]=dis[sta]+map[sta][j]; //关键地方 if(dis[j]<m &&dis[j]!=0) { m=dis[j]; mark=j; } } if(m==0||m==INT_MAX) break; visit[mark]=true; sta=mark; } }
- 图论最短路径 Dijkstra算法和模板
- 图论最短路径 Dijkstra算法和模板
- 最短路径Dijkstra算法模板
- 单源最短路径算法模板(Dijkstra+BellmanFrod)
- dijkstra 最短路径算法模板
- 最短路径算法模板:Dijkstra/Floyd/Bellman-Ford模板
- [模板] Dijkstra单源最短路径
- 带权图最短路径 Dijkstra 算法和实现
- 最短路径算法Dijkstra和A*
- 最短路径算法Dijkstra && SPFA && Floyd 代码实现模板
- 单源最短路径算法--Dijkstra算法和Bellman-Ford算法
- 最短路径算法—Dijkstra算法和BellmanFord算法
- 图论最短路径算法——Dijkstra
- 图论最短路径算法-Dijkstra算法-单源最短路径-JAVA语言描述
- 单源最短路径 dijkstra算法
- 单源最短路径Dijkstra算法
- Dijkstra 单源最短路径算法
- 单源最短路径 :Dijkstra 算法
- JavaScript中的3中强制转换数据类型的方法
- 实验三:[图]管道铺设施工的最佳方案问题
- zoj 1315
- David Pallmann谈WCF服务设计使用技巧
- w3school学习6-jQuery HTML 操作
- 图论最短路径 Dijkstra算法和模板
- java web listener 监听器
- jCarousel使用说明文档(中文)
- Oracle SQL最佳实践
- SOJ-4072(数组模拟双向链表)
- 中国创业的四波浪潮
- 黑马程序员_java基础视频第23天_ java网络编程
- Windows下的Memcache
- 创业者必看的十大励志电影