迪杰斯特拉(Dijkstra)算法主要是針對沒有負(fù)值的有向圖,求解其中的單一起點到其他頂點的最短路徑算法。本文主要總結(jié)迪杰斯特拉(Dijkstra)算法的原理和算法流程,最后通過程序?qū)崿F(xiàn)在一個帶權(quán)值的有向圖中,選定某一個起點,求解到達(dá)其它節(jié)點的最短路徑,來加深對算法的理解。
1 算法原理
迪杰斯特拉(Dijkstra)算法是一個按照路徑長度遞增的次序產(chǎn)生的最短路徑算法。下圖為帶權(quán)值的有向圖,作為程序中的實驗數(shù)據(jù)。
其中,帶權(quán)值的有向圖采用鄰接矩陣graph來進(jìn)行存儲,在計算中就是采用n*n的二維數(shù)組來進(jìn)行存儲,v0-v5表示數(shù)組的索引編號0-5,二維數(shù)組的值表示節(jié)點之間的權(quán)值,若兩個節(jié)點不能通行,比如,v0->v1不能通行,那么gr
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式