關於拓撲排序的幾點總結
阿新 • • 發佈:2018-11-19
拓撲排序的概念:
- 重複一個操作:(遍歷入度為0的點,遍歷從這個點連線的其他點)
拓撲排序的注意事項:
- 因為是遍歷時是從一個點到其他點,也就是說,需要是有向邊,再稍加推理即可得出這樣一個結論:拓撲排序必須在DAG上.
拓撲排序的例題(難度由低到高):
拓撲排序的適用範圍:
- 有向無環圖(DAG)
關於拓撲排序的總結:
- 無後效性:拓撲排序的過程類似動態規劃的無後效性的體現。這是因為,拓撲排序都是由入度為0的結點開始執行的。而執行過一次的點,不需要再次執行。而在執行的過程中又會產生新的入度為0的結點,這就類似DP的狀態轉移方程了.
- 圖上演算法:拓撲排序是一種圖上演算法。與之類似的演算法有:Dijkstra,Kruskal等,其中,Dijkstra可以作用在無負邊權的圖上,而Kruskal可以執行在無向無環圖上。而拓撲排序只能執行在DAG上.
- 數論:數論中的拓撲,指:只考慮物體之間的位置關係而不考慮物體的形狀和大小。(歐拉回路 例題:七橋問題)
- 排序:拓撲排序也是一種“排序”演算法,也就是說,他可以求出一些具有依賴關係的任務的排序關係。比如:選課問題。
- 關係:拓撲排序可以用於求一系列物件之間的關係。比如:三角戀問題