最短路基础总结(Floyd Dijkstra SPFA)
来源:互联网 发布:你的名字同款结绳淘宝 编辑:程序博客网 时间:2024/06/14 16:38
只是想记录一下这三个最短路算法的模板。
Floyd:
//邻接矩阵mp[N][N];//把各个点之间的最短路全算出来了。//时间复杂度:O(n^3)void floyd(){ for(int k=1; k<=n; k++) { for(int i=1; i<=n; i++) { if(mp[i][k]!=inf) for(int j=1; j<=n; j++) { if(mp[i][k]+mp[k][j]<mp[i][j]) { mp[i][j]=mp[i][k]+mp[k][j]; } } } }}
Dijkstra:
//邻接矩阵mp[N][N]//单源最短路//时间复杂度:O(n^2)void dijkstra(int b,int e){ for(int i=0;i<n;i++) { dis[i]=mp[b][i]; } dis[b]=0; flag[b]=1; for(int i=1;i<=m;i++) { int min=MAX; int k; for(int j=0;j<n;j++) { if(!flag[j]&&min>dis[j]) { min=dis[j]; k=j; } } if(min==MAX) break; flag[k]=1; for(int j=0;j<n;j++) { if(!flag[j]&&dis[j]>dis[k]+mp[k][j]) { dis[j]=dis[k]+mp[k][j]; } } }}
//邻接矩阵mp[N][N] 邻接表直接看题吧//单源最短路//时间复杂度:O(kE) E为边数,k为所有顶点进队的平均次数void spfa(int s){ queue<int> q; while(!q.empty()) { q.pop(); } memset(vis,0,sizeof vis); for(int i=0;i<n;i++) { dis[i]=inf; } q.push(s); dis[s]=0;vis[s]=1; while(!q.empty()) { int now=q.front(); q.pop();vis[now]=0; for(int i=0;i<n;i++) { if(dis[i]>mp[now][i]+dis[now]) { dis[i]=mp[now][i]+dis[now]; if(!vis[i]) { q.push(i); vis[i]=1; } } } }}
还未学习Dijkstra SPFA的各种优化。
0 0
- 最短路基础总结(Floyd Dijkstra SPFA)
- 最短路知识点总结(Dijkstra,Floyd,SPFA,Bellman-Ford)
- 最短路知识点总结(Dijkstra,Floyd,SPFA,Bellman-Ford)
- 最短路 spfa, dijkstra, Floyd
- 最短路【dijkstra】【floyd 】【spfa】
- HDU - 2544 - 最短路 (最基础单源最短路问题!!dijkstra+floyd+SPFA)
- 最短路算法详解(Dijkstra/SPFA/Floyd)
- HDU-#2544 最短路(Dijkstra、Floyd、Bellman-Ford、SPFA)
- 最短路算法详解(Dijkstra/SPFA/Floyd)
- 最短路算法详解(Dijkstra/SPFA/Floyd)
- 最短路算法详解(Dijkstra/SPFA/Floyd)
- 最短路(SPFA、Dijkstra、Floyd、Bellman-Ford)
- HDU 2544 最短路(dijkstra,Floyd,spfa)
- HDU 2544 最短路(Floyd/Dijkstra/SPFA)
- 最短路算法详解(Dijkstra/SPFA/Floyd)
- 最短路算法详解(Dijkstra/Floyd/SPFA/A*算法)
- 最短路算法详解(Dijkstra/SPFA/Floyd)
- 最短路的三种算法(Floyd、Dijkstra、SPFA)
- Activity生命周期总结
- HTML5 Canvas基础练习
- (ECPC 16) (6/11)
- 算法设计与应用基础: 第十周(1)
- [bzoj4033]树上染色
- 最短路基础总结(Floyd Dijkstra SPFA)
- maven中静态资源和字节码文件的过滤
- python itertools模块实现排列组合
- cmd的javac多个类编译方法
- 推荐系统实践之-冷启动问题
- AOP之Spring使用注解方式实现AOP(入门)
- Word2Vec+CNN+tensorflow实现恶意网页链接的检测
- 【剑指offer】合并两个排序的链表
- 实验5