单源最短路径 : Dijkstra 算法
来源:互联网 发布:历年固定资产投资数据 编辑:程序博客网 时间:2024/04/28 23:45
public class Dijkstra {static final int M = 10000;static void dijkstra(int[][] edges, int s) {int vertexs = edges.length;// distint[] d = new int[vertexs];// πint[] p = new int[vertexs];boolean[] visited = new boolean[vertexs];for(int i = 0; i < vertexs; i++) {d[i] = M;p[i] = -1;}d[s] = 0;for(int cnt = 0; cnt < vertexs; cnt++) {int u = -1;//extract-minint min = Integer.MAX_VALUE;for(int i = 0; i < vertexs; i++) {if(!visited[i] && d[i] < min) {min = d[i];u = i;}}//unionvisited[u] = true;//relaxationfor(int v = 0; v < edges[u].length; v++) {if(d[v] > (d[u] + edges[u][v])) {d[v] = d[u] + edges[u][v];p[v] = u;}}}//printfor(int i = 0; i < vertexs; i++) {char u = (char)('A' + s);char v = (char)('A' + i);if (d[i] < M) {System.out.printf("%c -> %c (%d) : ", u, v, d[i]);StringBuilder sb = new StringBuilder();int j = i;if(s != i)sb.append(v);while (p[j] != -1) {sb.insert(0, (char) ('A' + p[j]) + " - ");j = p[j];}System.out.println(sb.toString());} else {System.out.printf("%c -> %c (∞) : \n", u, v);}}}public static void main(String[] args) {int[][] edges = {{0,M,M,M, M, M, 9},{20, 0, 10,30, M, M, M},{M, M, 0, M, 5, M, 18},{M, M, M, 0, M, M, M},{M, M, M, 12, 0, M, 15},{M, M, M, M, 8, 0, 10},{M, M, 18, M, M, M, 0}};dijkstra(edges, 1);}}
输出结果:
B -> A (20) : B - A
B -> B (0) :
B -> C (10) : B - C
B -> D (27) : B - C - E - D
B -> E (15) : B - C - E
B -> F (∞) :
B -> G (28) : B - C - G
- 单源最短路径 dijkstra算法
- 单源最短路径Dijkstra算法
- Dijkstra 单源最短路径算法
- 单源最短路径 :Dijkstra 算法
- 单源最短路径(Dijkstra算法)
- 单源最短路径----------Dijkstra算法
- 单源最短路径Dijkstra算法
- 单源最短路径(Dijkstra算法)
- 单源最短路径 : Dijkstra 算法
- Dijkstra单源最短路径算法
- 算法 单源最短路径Dijkstra
- 单源最短路径-Dijkstra算法
- 单源最短路径----Dijkstra算法
- 单源最短路径-Dijkstra算法
- 单源最短路径算法-Dijkstra
- 单源最短路径 :Dijkstra算法
- 单源最短路径 -- Dijkstra算法
- 单源最短路径(Dijkstra算法)
- 设计模式--装饰者模式
- S3C6410 MFC decode H.264流程
- P-code学习
- 合并查询
- 轻松使用线程: 不共享有时是最好的 from ibm developerworks
- 单源最短路径 : Dijkstra 算法
- 将h264流组成RTP包进行发送
- 深入理解Java内存模型(七)——总结
- 分布式与集群的区别
- 水稻基因命名
- 【骏河】BDC锁定问题及解决方案
- 155b_Combination
- Linux 分辨率
- NYTimes Objective-C 编程风格指南