Dijkstra算法 ---java实现
Posted lxjshuju
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dijkstra算法 ---java实现相关的知识,希望对你有一定的参考价值。
<pre name="code" class="java">/* * 设置一个U集合,包括最小路径长度和上一个结点 * V-U集合表示还没有进行调整 * 把V-U集合逐渐增加U中。并调整最小路径 * */ public class Dijkstra { private static int MAX = 10000; public static void dijkstra(GraphMatrix grap, Path dist[]){ // 初始化V0 init(grap,dist); int n = dist.length; int minw = MAX; int mv = 0; for(int i=1;i<n;i++){ int j; //找出和V0距离近期的顶点mv for(j=1;j<n;j++){ if(grap.arcs[j][j]==0 && dist[j].length<MAX){ mv=j; minw = dist[j].length; } } if(mv == 0) break; grap.arcs[mv][mv]=1; //把顶点mv增加U中 //调整V-U中已知的最短路径 for(j=1;j<n;j++){ if(grap.arcs[j][j]==0 && dist[j].length > dist[mv].length + grap.arcs[mv][j]){ dist[j].length = dist[mv].length + grap.arcs[mv][j]; dist[j].pre = mv; } } } }
以上是关于Dijkstra算法 ---java实现的主要内容,如果未能解决你的问题,请参考以下文章