<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實(shí)現(xiàn)Dijkstra單源最短路徑,主要特點(diǎn)是以起始點(diǎn)為中心向外層層擴(kuò)展,直到擴(kuò)展到終點(diǎn)為止。描述就不寫了,看相關(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)重矩陣,和一個起點(diǎn)編號start(從0編號,頂點(diǎn)存在數(shù)組中)
            //返回一個int[] 數(shù)組,表示從start到它的最短路徑長度
            int n = weight.length;        //頂點(diǎn)個數(shù)
            int[] shortPath = new int[n];    //存放從start到其他各點(diǎn)的最短路徑
            int[] visited = new int[n];        //標(biāo)記當(dāng)前該頂點(diǎn)的最短路徑是否已經(jīng)求出,1表示已求出
            
            //初始化,第一個頂點(diǎn)求出
            shortPath[start] = 0;
            visited[start] = 1;
            
            for(int count = 1;count <= n - 1;count++)        //要加入n-1個頂點(diǎn)
            {
                int k = -1;    //選出一個距離初始頂點(diǎn)start最近的未標(biāo)記頂點(diǎn)
                int dmin = 1000;
                for(int i = 0;i < n;i++)
                {
                    if(visited[i] == 0 && weight[start][i] < dmin)
                    {
                        dmin = weight[start][i];
                        k = i;
                    }    
                }
                
                //將新選出的頂點(diǎn)標(biāo)記為已求出最短路徑,且到start的最短路徑就是dmin
                shortPath[k] = dmin;
                visited[k] = 1;
                
                //以k為中間點(diǎn)想,修正從start到未訪問各點(diǎn)的距離
                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) 貨運(yùn)專家
    主站蜘蛛池模板: 无码国产精品一区二区免费式直播 | 日日狠狠久久偷偷色综合免费 | 亚洲精品无码久久久久A片苍井空| 成人毛片18女人毛片免费 | 97视频免费在线| 亚洲国产精品自在自线观看 | 亚洲精品人成网线在线播放va| 免费一级毛片在级播放| 日本高清不卡aⅴ免费网站| 亚洲人成网站日本片| 亚洲第一区精品观看| 人妻无码一区二区三区免费| 亚洲av无码专区国产不乱码| 人人狠狠综合久久亚洲88| 成年人免费网站在线观看| 成人影片一区免费观看| 亚洲av无码专区在线电影| 久久精品7亚洲午夜a| 在线免费观看国产视频| 性无码免费一区二区三区在线| 亚洲av无码成人精品国产| 97久久精品亚洲中文字幕无码| 五月天婷亚洲天综合网精品偷| 69视频在线观看免费| 一道本不卡免费视频| 2017亚洲男人天堂一| 亚洲av永久无码精品网站| 免费看小12萝裸体视频国产| 91香焦国产线观看看免费| 老司机午夜在线视频免费观| 久久亚洲AV无码精品色午夜 | 亚洲午夜无码片在线观看影院猛| 免费影院未满十八勿进网站| 日韩a级无码免费视频| 一级毛片正片免费视频手机看| 亚洲大成色www永久网址| 亚洲视频网站在线观看| 亚洲国产成人高清在线观看 | 亚洲人成无码网站在线观看| 久久久婷婷五月亚洲97号色| 国产亚洲精品免费视频播放|