迪杰斯特拉算法是求最短路徑的一種算法。
如圖,有N0到Nn個(gè)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)之間互相聯(lián)通或者不通,聯(lián)通的節(jié)點(diǎn)之間有節(jié)點(diǎn)距離。
從N0點(diǎn)出發(fā),計(jì)算從該點(diǎn)到其他點(diǎn)的最短距離,不通的節(jié)點(diǎn)之間的距離算作無限大。
遍歷一次后,距離最短的節(jié)點(diǎn)為N0的下一個(gè)節(jié)點(diǎn)。
然后從第二個(gè)節(jié)點(diǎn)開始,再次計(jì)算到達(dá)各節(jié)點(diǎn)的距離。距離可以從第一個(gè)節(jié)點(diǎn)也可以從第二個(gè)節(jié)點(diǎn)開始計(jì)算。再次尋找最短距離。
以此類推,可以找到走遍所有節(jié)點(diǎn)的最短路徑