八十七、探究最短路问题:Dijkstra算法
@Author:Runsen
在上次寫(xiě)道關(guān)于數(shù)據(jù)結(jié)構(gòu)的圖,圖的算法的考點(diǎn)只有一個(gè):最短路問(wèn)題。
最短路問(wèn)題
最短路問(wèn)題(Shortest Path Problems): 給定一個(gè)網(wǎng)絡(luò),網(wǎng)絡(luò)的邊上有權(quán)重,找一條從給定起點(diǎn)到給定終點(diǎn)的路徑使路徑上的邊權(quán)重總和最小。
比如上圖的:圖中點(diǎn)1到點(diǎn)4的最短路徑長(zhǎng)度應(yīng)為3(從1到2到4)。
最短路問(wèn)題常用Dijkstra算法解決
Dijkstra算法
Dijkstra算法是典型的單源最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。主要特點(diǎn)是以起始點(diǎn)為中心向外層層擴(kuò)展,直到擴(kuò)展到終點(diǎn)為止。
比如,上圖Dijkstra算法就是不斷地尋找開(kāi)始節(jié)點(diǎn)到鄰居節(jié)點(diǎn)的所有的路徑,將最初的距離設(shè)置為最短距離,然后不斷的更新節(jié)鄰居節(jié)點(diǎn)的最短距離,直到最遠(yuǎn)的節(jié)點(diǎn)的最短距離求解出來(lái)的過(guò)程。
文字描述不清楚,看下面的動(dòng)圖。
將圖上的頂點(diǎn)分為已訪問(wèn)visited和未訪問(wèn)node兩個(gè)集合。
每次從visited向外拓展一個(gè)點(diǎn),拓展規(guī)則是在可更新的點(diǎn)里是距離最小的。
我們還是以上面的圖為例
總結(jié)
以上是生活随笔為你收集整理的八十七、探究最短路问题:Dijkstra算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 好福利怎么报销医药费
- 下一篇: 九十二、动态规划系列之股票问题(上)