1 / 19
文档名称:

Dijkstra算法求最短路径C#版.doc

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

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

分享

预览

Dijkstra算法求最短路径C#版.doc

上传人:1017848967 2020/10/3 文件大小:244 KB

下载得到文件列表

Dijkstra算法求最短路径C#版.doc

文档介绍

文档介绍:Dijkstra算法求最短路径(C#版)行如下图的路径,(V0是中心):经过该算法后转化为下图usingSystem;;;namespaceGreedy{     classMarx   {       privateint[]distance;              privateintrow;       privateArrayListways=newArrayList();       publicMarx(intn,paramsint[]d)       {           =n;           distance=newint[row*row];           for(inti=0;i<row*row;i++)           {               [i]=d[i];                        }           for(inti=0;i<;i++) //有row个点,则从中心到各点的路有row-1条           {               ArrayListw=newArrayList();               intj=0;               (j);               (w);           }       }       //------------------------------       publicvoidFind_way()       {           ArrayListS=newArrayList(1);           ArrayListSr=newArrayList(1);           int[]Indexof_distance=newint[];                      for(inti=0;i<row;i++)           {               Indexof_distance[i]=i;           }           (Indexof_distance[0]);                  for(inti=0;i<;i++)           {               (Indexof_distance[i]);           }           (0);           int[]D=newint[];   //存放中心点到每个点的距离                  //---------------以上已经初始化了,S和Sr(里边放的都是点的编号)------------------           intCount=-1;           while(Count>0)           {               //假定中心点的编号是0的贪吃法求路径               for(inti=0;i<row;i++)                   D[i]=[i];               intmin_num=(int)Sr[0]; //距中心点的最小距离点编号               foreach(intsinSr)               {                   if(D[s]<D[min_num])min_num=s;               }                      //以上可以排序优化               (min_num);               (min_num);               //-----------把最新包含进来的点也加到路径中-------------               ((ArrayList)ways[min_num]).Add(min_num);               //-----------------------------------------------               foreach(intelementinSr)               {                   intposition=element*()+min_num;