算法实现Java之最短路径迪杰斯特拉(Dijkstra)
来源:互联网 发布:英雄联盟韩服数据库 编辑:程序博客网 时间:2024/05/29 13:42
package com.gpf.arithmetic;public class Dijkstra {private static int M=200000;//无通路public static void main(String[] args) {//初始距离int [][]weight = {{0,767,M,698,M},{343,0,M,263,512},{342,348,0,M,123},{456,234,M,0,890},{534,567,546,M,0},};int start = 0;int[]shortPath = DijkstraPath(weight, start);for(int i = 0; i < shortPath.length; i++){System.out.println(start + "到" + i + "点的最短距离为:" + shortPath[i]);}}private static int[] DijkstraPath(int[][] weight, int start) {int n = weight.length;//顶点数量int []shortPath = new int[n];//最短路径String []path = new String[n];//路径boolean [] visited = new boolean[n];//是否求出//初始化for (int i = 0; i < n; i++) {visited[i] = false;path[i] = start + "-->" + i;}//设置初始点shortPath[start] = 0;visited[start] = true;//求其他点for(int num = 0; num < n-1; num++){//找出距离start最短距离的点kint k = -1;int dmin = Integer.MAX_VALUE;for(int i = 0; i < n; i++){//距离最小且没访问过if(visited[i]==false && weight[start][i]<dmin){dmin = weight[start][i];k = i;}}//循环结束 找出该点 并标记shortPath[k] = dmin;visited[k] = true;//赋值距离for(int i = 0; i < n; i++){//没有访问过且加入k点后距离小于直接if(visited[i]==false && weight[start][k] + weight[k][i] < weight[start][i]){weight[start][i] = weight[start][k] + weight[k][i];path[i] = path[k] + "-->" + i;}}}for(int i = 0; i < n; i++){System.out.println(start + "到" + i + "的路径为:" + path[i]);}return shortPath;}}
阅读全文
0 0
- 算法实现Java之最短路径迪杰斯特拉(Dijkstra)
- 最短路径算法之Dijkstra算法(java实现)
- 最短路径之迪杰斯特拉(Dijkstra)算法
- 最短路径算法之Dijkstra算法(邻接矩阵实现)
- 最短路径算法之Dijkstra算法_Java实现
- 最短路径(Dijkstra)算法 之 .Net 4.0 Parallel 实现
- 最短路径之dijkstra算法的C语言实现
- 动手实现 算法 之 “Dijkstra 最短路径”
- 最短路径之Dijkstra算法 C语言实现
- 最短路径之Dijkstra算法的概念与实现
- 单源点最短路径Dijkstra算法的JAVA实现
- 单源点最短路径Dijkstra算法的JAVA实现
- 最短路径Dijkstra算法的JAVA实现--转载
- 最短路径算法Dijkstra思路及java实现
- Dijkstra最短路径算法浅析及java实现
- Dijkstra最短路径算法的java实现
- 算法:最短路径之迪杰斯特拉(Dijkstra)算法
- 最短路径算法之 Dijkstra(迪杰斯特拉)算法
- 前端_jQuery过滤器 过滤关键字
- 【Uva11806】Cheerleaders
- [ 网络流 主席树 ] BZOJ3218
- 《程序员》的出路
- j2ee分布式架构 dubbo + springmvc + mybatis + ehcache + redis 技术介绍
- 算法实现Java之最短路径迪杰斯特拉(Dijkstra)
- 2
- 2017-9-28离线赛瞎刷
- 1201: 众数问题
- 如何生成要导入到unity的dll
- 运维之红帽管理员篇-----5. 破解红帽系统密码、cron计划任务、权限和归属 、 使用LDAP认证 、 家目录漫游
- jQuery序列化表单 serialize() serializeArray()
- 发布 Android Wear 公测版
- [BZOJ]4151: [AMPPZ2014]The Cave