圖解Dijkstra(迪傑斯特拉)算法

第一題:從 節點1 到 節點6 的最短路徑

(注:①先創建兩個集合,S={ }集合用來裝路線確定的,U={ }集合用來裝路線未確定的

           ②相鄰節點纔有權重值,不相鄰相當於無限遠,用∞表示

           ③每確定一個節點都要更新路線未確定的節點的權重,務必要最小)

第一步:

    S={ 1(0)}

    U={ 2(1),3(12),4(∞),5(∞),6(∞)}

第二步:

    S={ 1(0), 2(1)}

    U={3(10),4(4),5(∞),6(∞)}

第三步:   

    S={ 1(0), 2(1),4(4)}

    U={3(8),,5(17),6(19)}

第四步:

    S={ 1(0), 2(1),4(4),3(8)}

    U={5(13),6(19)}

第五步:

    S={ 1(0), 2(1),4(4),3(8),5(13)}

    U={6(17)}

第六步:

    S={ 1(0), 2(1),4(4),3(8),5(13),6(17)}

綜上:最短路徑就1-->2-->4-->3-->5-->6 最短路徑是17

 

第二題:從 節點D 到 節點A 的最短路徑

第一步:

    S={ D(0)}

    U={ C(3),E(4),F(∞),B(∞),G(∞),A(∞)}

第二步:

    S={ D(0),C(3)}

    U={ E(4),F(9),B(13),G(∞),A(∞)}

第三步:

    S={ D(0),C(3),E(4)}

    U={ F(6),B(13),G(12),A(∞)}

第四步:

    S={ D(0),C(3),E(4), F(6)}

    U={B(13),G(12),A(22)}

第五步:

    S={ D(0),C(3),E(4), F(6),G(12)}

    U={B(13),A(22)}

第六步:

    S={ D(0),C(3),E(4), F(6),G(12),B(13)}

    U={A(22)}

第七步:

    S={ D(0),C(3),E(4), F(6),G(12),B(13),A(22)}

綜上:最短路徑是 D-->C-->E-->F-->G-->B-->A   最短路徑是22

 

 

 

發佈了63 篇原創文章 · 獲贊 2 · 訪問量 8162
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章