单源最短路径_贪心算法
来源:互联网 发布:vy是什么意思网络用语 编辑:程序博客网 时间:2024/05/17 07:27
public class TheShortestWay{static int MAX_SIZE=6;public static void dijkstra(int v,float[][]a,float[]dist,int[]prev){ int n=dist.length-1; if(v<1||v>n)return; boolean []s=new boolean[n+1]; for(int i=1;i<=n;i++) { dist[i]=a[v][i]; s[i]=false; if(dist[i]==Float.MAX_VALUE) prev[i]=0; else prev[i]=v; } dist[v]=0;s[v]=true; for(int i=1;i<n;i++) { float temp=Float.MAX_VALUE; int u=v; for(int j=1;j<=n;j++) if((!s[j])&&(dist[j]<temp)) { u=j; temp=dist[j]; } s[u]=true; for(int j=1;j<=n;j++) if((!s[j])&&(a[u][j]<Float.MAX_VALUE)) { float newdist=dist[u]+a[u][j]; if(newdist<dist[j]) { dist[j]=newdist; prev[j]=u; } } }}public static void main(String args[]){ float a[][]=new float[MAX_SIZE][MAX_SIZE];float[]dist=new float[MAX_SIZE];int []prev=new int[MAX_SIZE]; for(int i=0;i<6;i++) for(int j=0;j<6;j++) a[i][j]=Float.MAX_VALUE; a[1][2]=10; a[1][4]=30; a[1][5]=100; a[2][3]=50; a[3][5]=10; a[4][3]=20; a[4][5]=60; int v=1;//假设从顶点1处出发 dijkstra(v,a,dist,prev); System.out.println("从1出发到2、3、4、5的最短路径依次是:"); for(int j=2;j<6;j++) { System.out.println(dist[j]); } int z=prev[5],y=prev[z],x=prev[y]; System.out.println("从1到5最短路径经过的点为:"); System.out.print(x+" "+y+" "+z+" "+"5");}}
运行结果:
从1出发到2、3、4、5的最短路径依次是:
10.0
50.0
30.0
60.0
从1到5最短路径经过的点为:
1 4 3 5
- 单源最短路径_贪心算法
- (贪心算法)单源最短路径
- 贪心算法-单源最短路径
- 单源最短路径--贪心算法
- 贪心算法--Dijkstra单源最短路径
- 单源最短路径(贪心算法)
- 贪心算法 - 单源最短路径 Dijkstra
- 贪心算法 Dijkstra 单源最短路径
- 贪心算法-Dijkstra单源最短路径
- 【贪心算法】单源最短路径问题
- 贪心算法之单源最短路径
- 贪心算法之单源最短路径
- 贪心算法 - 单源最短路径 Dijkstra
- 贪心算法之单源最短路径
- 贪心法_单源最短路径_Dijkstra
- Dijkstra算法|单源最短路径|贪心算法
- 单源最短路径---贪心法实现(Dijkstra算法)
- 贪心算法——单源最短路径 dijkstra
- ObjectiveC中的赋值,对象拷贝,浅拷贝与深拷贝
- Android Wifi:使用Android Instrument 自动测试 WIFI_SERVICE
- 14条原则 (2) 首先检查最简单的:例如,MFC播放avi的时候在上面画东西
- android SDK开发环境搭建(Android 4.0.3 emulator)
- POJ 2155 Matrix
- 单源最短路径_贪心算法
- 三维立体重建
- 二分搜索算法
- 汇编_ASM_选择排序
- 发现csdn的一个bug
- 在Java语言中访问游标类型详解
- 汇编_ASM_选择排序
- 简单的词法分析器
- Microsoft sqlserver sa无法登陆