重念一次早該補起來的「資料結構與演算法」。這篇筆記下 Prim’s Algorithm 普林演算法。
課程相關資訊
[連結]:https://hiskio.com/courses/572/lectures/29887
本篇範圍:Chapter 9
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
1. 要有 Visited Nodes 和 Edges,其中 Visited Nodes 必須要全部都有
2. 從任意的 Nodes 出發,開始觀察周圍的 Edges。當找到最小的 Edge 時,就選擇這一條,並將其兩端 Nodes 給記下來
3. 每當有記上一條 Edge 時,你會有新的 Node 進入你的觀察視野。觀察當下的所有與 Visited Nodes 相連的 Edge:在排除掉已經加入 Edge 清單的情況下,剩餘的 Edge 哪一個值最小。接著反覆重複過程,直到剩餘的 Edge 都會和 Visited Nodes 成 loop 為止
根據 Prim’s Algorithm,無論你從哪一個點開始找 Minimum Spanning Tree,結果都是一樣的。
判斷是否生成一個 Loop 的方法:當你找到一條 Edge,其兩端都已經在 Visited Nodes 的列表中了