章節連結
重念一次早該補起來的「資料結構與演算法」。這篇筆記下圖形演算法的 Dijkstra 演算法。
課程相關資訊
[連結]:https://hiskio.com/courses/572/lectures/29901
本篇範圍:Chapter 10
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
Dijkstra 演算法是用來在 Graph 中找最短路徑 – 給一個點,找其他的點到此點的最短路徑
Dijkstra 演算法
1. 先將所有的點都標記成無限大
2. 若你設定 A 節點為啟始點,那將此值改為 0;同時也將相鄰的節點改為 edge 的數值
3. 接著選定較小的相鄰節點,然後到他相鄰的其他節點相加,看哪一個比較小
接著你就可以製作 A 節點到其他節點的最小值的表格
你會需要用到的觀念有:CurrentNode, MinHeap。每當拜訪完所有相鄰節點,或是更新了最短路徑的值,都會需要更新 MinHeap