1 / 9
文档名称:

Dijkstra算法求最短路径.doc

格式:doc   大小:92KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Dijkstra算法求最短路径.doc

上传人:ranfand 2016/8/21 文件大小:92 KB

下载得到文件列表

Dijkstra算法求最短路径.doc

相关文档

文档介绍

文档介绍:Dijkstra 算法求最短路径(C# 版) 行如下图的路径,(V0 是中心): 经过该算法后转化为下图 using System; using ; using ; namespace Greedy { class Marx {private int[] distance; private int row; private ArrayList ways =new ArrayList(); public Marx(int n,params int[] d) { =n; distance =new int[row *row]; for (int i=0;i<row *row; i++) {[i] = d[i]; }for (int i=0;i<; i++) //有row 个点,则从中心到各点的路有 row-1 条{ArrayList w=new ArrayList(); int j=0; (j); (w); }}//------------------------------ public void Find_way() {ArrayList S=new ArrayList(1); ArrayList Sr=new ArrayList(1); int []Indexof_distance=new int[]; for(int i=0; i<row; i++) {Indexof_distance[i]=i; }( Indexof_distance[0] ); for (int i=0;i<; i++) {( Indexof_distance[i] ); }(0); int[] D=new int[]; //存放中心点到每个点的距离//--------------- 以上已经初始化了, S和Sr( 里边放的都是点的编号)------------------ int Count = -1; while (Count>0) {//假定中心点的编号是 0的贪吃法求路径 for (int i=0;i<row; i++) D[i] =[i]; int min_num =(int)Sr[0]; // 距中心点的最小距离点编号 foreach (int sinSr) {if(D[s] <D[min_num]) min_num = s;}//以上可以排序优化 (min_num); (min_num); //----------- 把最新包含进来的点也加到路径中------------- ((ArrayList)ways[min_num]).Add(min_num) ;//------------------------------------ ----------- foreach (int element inSr) {int position =element * () +min_num; bool exchange = false; //有交换标志 if