<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 241,  comments - 116,  trackbacks - 0
    暑假寫的Java實現(xiàn)Dijkstra單源最短路徑,主要特點是以起始點為中心向外層層擴展,直到擴展到終點為止。描述就不寫了,看相關(guān)書籍吧。 Dijkstra是一個貪心算法。
    package Section9;


    /*第九章  貪婪算法   Dijkstra單源最短路徑*/

    public class Dijkstra {

        /**
    墻頭草

         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int[][] weight = {
                    {0,3,2000,7,9999999},
                    {3,0,4,2,9999999},
                    {9999999,4,0,5,6},
                    {7,2,5,0,4},
                    {9999999,9999999,4,6,0}
            };
            
            int[] path = Dijsktra(weight,0);
            for(int i = 0;i < path.length;i++)
                System.out.print(path[i] + "  ");
        }
        

        public static int[] Dijsktra(int[][] weight,int start){
            //接受一個有向圖的權(quán)重矩陣,和一個起點編號start(從0編號,頂點存在數(shù)組中)
            //返回一個int[] 數(shù)組,表示從start到它的最短路徑長度
            int n = weight.length;        //頂點個數(shù)
            int[] shortPath = new int[n];    //存放從start到其他各點的最短路徑
            int[] visited = new int[n];        //標記當前該頂點的最短路徑是否已經(jīng)求出,1表示已求出
            
            //初始化,第一個頂點求出
            shortPath[start] = 0;
            visited[start] = 1;
            
            for(int count = 1;count <= n - 1;count++)        //要加入n-1個頂點
            {
                int k = -1;    //選出一個距離初始頂點start最近的未標記頂點
                int dmin = 1000;
                for(int i = 0;i < n;i++)
                {
                    if(visited[i] == 0 && weight[start][i] < dmin)
                    {
                        dmin = weight[start][i];
                        k = i;
                    }    
                }
                
                //將新選出的頂點標記為已求出最短路徑,且到start的最短路徑就是dmin
                shortPath[k] = dmin;
                visited[k] = 1;
                
                //以k為中間點想,修正從start到未訪問各點的距離
                for(int i = 0;i < n;i++)
                {
                    if(visited[i] == 0 && weight[start][k] + weight[k][i] < weight[start][i])
                         weight[start][i] = weight[start][k] + weight[k][i];
                }    
        
            }
            
            return shortPath;
        }
    }
    posted on 2011-10-09 10:52 墻頭草 閱讀(3498) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    人人游戲網(wǎng) 軟件開發(fā)網(wǎng) 貨運專家
    主站蜘蛛池模板: 免费无码毛片一区二区APP| 国产亚洲AV手机在线观看| 在线精品免费视频| 亚洲国产精品无码成人片久久 | 免费精品一区二区三区在线观看 | 久久精品国产99国产精品亚洲| 香港a毛片免费观看| 久久精品国产亚洲av麻豆小说| 99精品在线免费观看| 亚洲日韩在线视频| 日韩精品无码区免费专区| 亚洲中文字幕无码久久| 日本一道综合久久aⅴ免费| 美女免费视频一区二区三区| 亚洲国产精品日韩专区AV| 国产成人无码免费网站| 久久乐国产精品亚洲综合| 日韩免费电影网址| 亚洲一区二区久久| 国产在线观看www鲁啊鲁免费| 黄色毛片免费观看| 久久夜色精品国产嚕嚕亚洲av| 又爽又黄无遮挡高清免费视频 | 毛片基地免费视频a| 老司机精品视频免费| 亚洲国产精品无码久久久久久曰| 中国性猛交xxxxx免费看| 亚洲一二成人精品区| 成人免费a级毛片无码网站入口| 黄色毛片视频免费| 亚洲精品视频专区| 日韩毛片免费在线观看| 国产免费阿v精品视频网址| 亚洲丝袜中文字幕| 亚洲综合另类小说色区色噜噜| 91福利免费体验区观看区| 美女18一级毛片免费看| 亚洲一区二区三区首页| 国产免费69成人精品视频| 久久99热精品免费观看动漫| 亚洲成a人片在线不卡一二三区 |