7.6 最短路徑

7.6 最短路徑


image.png

古代的劍客們與算法

對手相逢時,無網絡

論對手多麼強大,ide

明知不敵,也要亮出本身的劍!spa


01blog

前言遞歸


一、倘若要在計算機上創建一個交通資訊系統則能夠採用圖的結構來表示實際的交通網絡。
ci

二、考慮到交通圖的有向行(如航運,逆水和順水時的船速就不同)帶權有向圖中,稱路徑上的第一個頂點爲源點,最後一個頂點爲終點。it


02class

 最短路徑im


一、求最短路徑的一個辦法是,每次以一個頂點爲源點,重複執行迪傑斯特拉算法n次。這樣,即可求得每一對頂點之間的最短路徑。總的執行時間爲O(n的3次方)。

二、弗洛依德算法:經過一個圖的權值矩陣求出它的每兩點間的最短路徑矩陣。 從圖的帶權鄰接矩陣A=[a(i,j)] n×n開始,遞歸地進行n次更新,即由矩陣D(0)=A,按一個公式,構造出矩陣D(1);又用一樣地公式由D(1)構造出D(2);……;最後又用一樣的公式由D(n-1)構造出矩陣D(n)。矩陣D(n)的i行j列元素即是i號頂點到j號頂點的最短路徑長度,稱D(n)爲圖的距離矩陣,同時還可引入一個後繼節點矩陣path來記錄兩點間的最短路徑。採用鬆弛技術(鬆弛操做),對在i和j之間的全部其餘點進行一次鬆弛。因此時間複雜度爲O(n^


若是您以爲本篇文章對您有做用,請轉發給更多的人,點一下好看就是對小編的最大支持!



有時候,正是那些意想不到之人,成就了無人能成之事。
——圖靈
相關文章
相關標籤/搜索