算法java实现--贪心算法--单源最短路径问题--Dijkstra算法

单源最短路径问题(Dijkstra算法)的java实现(贪心算法)

具体问题描述以及C/C++实现参见网址

http://blog.csdn.net/liufeng_king/article/details/8726066

import java.util.Scanner;

public class Dij {
	/**
	 * 单源最短路径
	 * @param v 顶点
	 * @param a 图用二维数组表示
	 * @param dist 从顶点到每个点的距离用数组表示
	 * @param prev 前驱结点数组
	 */
	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]==-1)
				prev[i]=0;
			else
				prev[i]=v;
		}
		dist[v]=0;//顶点放入
		s[v]=true;
		for(int i=1;i


你可能感兴趣的:(java算法,java)