Floyd作為壹種典型的求多源最短路徑問題的算法,是解決任意兩個點之間最短路徑的算法,它的思想是基於動態規劃的思想。
見——第壹章 算法基礎——基礎算法分析類型。
Floyd的核心思想也是基於動態規劃的理論,過程也比較簡單。
設 表示為i點到j點過程中以(1…k)集合中的節點為中間節點的最短路徑長度,則:
(1)若最短路徑經過點k,則 = + ;
(2)若最短路徑不經過點k,則 = 。
於是 = .
Floyd算法的時間復雜度為 ,空間復雜度為 。