回答
在抽象層面上它們是連接的:正如Saeed和Stefan所說,它是總訂單和部分訂單之間的差異。這是一個非常簡潔的描述,但有時候在學習時沒有幫助。
總的訂單意味着,在沒有重複的情況下,當您排序某些內容時,您將得到一個唯一的正確答案。如果按升序排序3,6,2,最好得到一個答案:2,3,6.
部分訂單有點鬆散。典型的例子是你穿上衣服的順序:你可以穿上你的短褲,然後是褲子,然後是你的襪子,然後是你的鞋子。這是一個有效的訂單。或者你可以做短褲,襪子,褲子,鞋子。但直覺上,你不能做短褲,褲子,鞋子,襪子。把襪子放在鞋子後面是沒有意義的。
爲了形式化該敷料示例,您通常會將帶有動作(「穿上鞋子」)的依賴關係圖顯示爲節點,並指示顯示哪些節點必須位於其他節點之前的依賴關係圖。拓撲排序是圖形中所有節點的排序,就像尊重弧段一樣。意思是,如果從襪子到鞋子都有弧線,那麼襪子最好在鞋子前排序。
再次,在抽象層次上,它們是連接的。但他們絕對不是同一件事。
如果你是布蘭妮,你可以把你的字符串後短...(我已經出局) – Kheldar 2012-02-02 14:54:23
@Novak:非常簡單和易於理解的例子。我想我永遠不會忘記這種拓撲排序。你是大學教授嗎?如果是這樣,你的學生真的很幸運。 – Samselvaprabu 2012-02-03 05:48:28
你很善良,但不,我只是一名博士生。我發現我必須在自己的頭腦中直接得到低級直覺,以幫助我記住,有時幫助我理解數學描述。數學是抽象力量的地方,但對於我來說,圖片和故事就是直覺所在。 – Novak 2012-02-03 19:06:45
拓撲排序通常是指查找符合某個部分順序的總順序,例如有向無環圖中的可達性關係。
如果總訂單可用,則可以將每個對象與每個對象進行比較。在這種情況下,你可以對wrt進行排序。該訂單。示例是wrt的整數。 >(或<或< =,...)或字符串wrt。字典順序。如果你有一個總的訂單排序是可能的。
如果只有部分訂單可用,則不是每個對象都可以與其他每個對象進行比較。只有某些對象之間存在關係。一個例子是編譯單元之間的依賴關係。拓撲排序是查找對象排序的任務,使得部分順序得到遵守(例如,通過編譯依賴於這些單元之後的某個其他單元的單元)。這裏有幾種解決方案(即排序)是可能的:如果A取決於B並且存在一些其他單元C,則可能的編譯序列是B,A,C和C,A,B(其中A在B之前編譯的每個序列)。
在拓撲排序中,我們在partially ordered set上工作,但在正常排序中,我們在total ordered set上工作。
在拓撲排序中,集合中的一對元素之間可能沒有任何關係,就像在有向圖中一樣,在某些節點之間沒有任何關係。在正常排序中,集合中的所有元素都有關係。例如,在一組數字中,我們有關係<,>,=所有對之間,所以它是總的有序。
- 1. 拓撲排序
- 2. 拓撲排序僞
- 3. 拓撲排序Neo4j
- 4. 拓撲排序和循環
- 5. 拓撲排序變體
- 6. 穩定拓撲排序
- 7. 拓撲圖排序java
- 8. 拓撲排序asm x86
- 9. 拓撲使用排序DFS
- 10. 有向無環圖的拓撲排序
- 11. 訂購和排序有什麼區別?
- 12. 「排序」和「排序!」有什麼區別?方法在紅寶石?
- 13. 桶排序和基數排序有什麼區別?
- 14. 拓撲排序的C++實現
- 15. 排序(拓撲)maven依賴關係
- 16. 拓撲排序(卡恩算法)麻煩
- 17. 圖表:拓撲排序,需要說明
- 18. Dummies的迭代/動態拓撲排序
- 19. 使用合金4.2的拓撲排序
- 20. 使用拓撲排序計算路徑
- 21. 通過圓弧進行拓撲排序
- 22. 在Spark GraphX中實現拓撲排序
- 23. 爲什麼C++在拓撲排序上比Java慢?
- 24. 爲什麼拓撲排序找到最短路徑O(V + E)
- 25. PHP排序依賴項數組列表 - 拓撲排序
- 26. 圖 - Embedded中的嵌入和拓撲有什麼區別?
- 27. 確定有向圖是否具有唯一的拓撲排序?
- 28. 如何查找有向圖是否有兩個拓撲排序?
- 29. DAG圖和拓撲排序混淆基本面
- 30. BFS和拓撲排序之間的關係
https://en.wikipedia.org/wiki/Sorting_algorithm | https://en.wikipedia.org/wiki/Topological_sorting – 2012-02-02 10:24:06