<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) 貨運專家
    主站蜘蛛池模板: 亚洲欧美日韩一区二区三区| 亚洲乱色熟女一区二区三区丝袜| 日本免费人成黄页在线观看视频| 成年女人永久免费观看片| www.亚洲色图.com| 亚洲小说区图片区另类春色| 亚洲AV第一页国产精品| 久久精品国产亚洲av麻豆蜜芽 | 亚洲av伊人久久综合密臀性色| 亚洲天堂在线播放| 亚洲人成网站看在线播放| 国产亚洲综合视频| 日韩电影免费在线观看| 久久精品a一国产成人免费网站| 免费h成人黄漫画嘿咻破解版| 亚洲国产精品一区第二页 | 最近免费中文字幕MV在线视频3| 亚洲黄色片免费看| 国产免费av一区二区三区| 国产激情免费视频在线观看| 在线观看免费人成视频色9 | 97无码免费人妻超级碰碰碰碰| 免费在线观看黄网| 666精品国产精品亚洲| 亚洲国产精品无码久久九九大片| 国产精品无码永久免费888| 57pao一国产成永久免费| 日本黄色免费观看| 久久久久亚洲AV成人无码 | 亚洲av无码专区在线电影天堂| 中文字幕在线视频免费| 久久久久久免费视频| 在线观看亚洲天天一三视| 亚洲av无码国产综合专区| 一区二区三区在线免费| 亚色九九九全国免费视频| 日韩精品成人亚洲专区| 亚洲成aⅴ人片在线观| jizz免费在线影视观看网站| 日韩精品成人无码专区免费| 亚洲精品无码鲁网中文电影|