<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];        //標(biāo)記當(dāng)前該頂點的最短路徑是否已經(jīng)求出,1表示已求出
            
            //初始化,第一個頂點求出
            shortPath[start] = 0;
            visited[start] = 1;
            
            for(int count = 1;count <= n - 1;count++)        //要加入n-1個頂點
            {
                int k = -1;    //選出一個距離初始頂點start最近的未標(biāo)記頂點
                int dmin = 1000;
                for(int i = 0;i < n;i++)
                {
                    if(visited[i] == 0 && weight[start][i] < dmin)
                    {
                        dmin = weight[start][i];
                        k = i;
                    }    
                }
                
                //將新選出的頂點標(biāo)記為已求出最短路徑,且到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 墻頭草 閱讀(3501) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    人人游戲網(wǎng) 軟件開發(fā)網(wǎng) 貨運專家
    主站蜘蛛池模板: 95老司机免费福利| 又大又硬又爽免费视频| 免费的一级片网站| 亚洲不卡中文字幕| 九九综合VA免费看| 免费在线观看黄网| 午夜亚洲乱码伦小说区69堂| 国产成人免费a在线视频app| 亚洲黄色片免费看| 亚洲香蕉免费有线视频| 亚洲国语在线视频手机在线| 成人a毛片免费视频观看| ww在线观视频免费观看| 亚洲综合综合在线| 国产免费不卡视频| 亚洲午夜久久久久久久久久| 美女被免费网站91色| 亚洲AV人人澡人人爽人人夜夜| 久久久久久久99精品免费| 亚洲色图黄色小说| 搡女人免费视频大全| 国产精品亚洲专一区二区三区| 亚洲天堂中文字幕在线| a色毛片免费视频| 亚洲精品一区二区三区四区乱码| 日韩不卡免费视频| 亚洲国产精品自在线一区二区 | 亚洲一区二区三区亚瑟| 成人毛片18女人毛片免费视频未| 99亚洲男女激情在线观看| 一本岛高清v不卡免费一三区| 中文字幕无码精品亚洲资源网久久| 玖玖在线免费视频| 久久亚洲AV永久无码精品| 亚洲欧美国产欧美色欲| 亚洲国产综合久久天堂| 国产精品亚洲一区二区三区久久| 国产亚洲日韩一区二区三区| 99精品视频在线免费观看| 亚洲av最新在线观看网址| 亚洲日韩一页精品发布|