大多數排序算法(插入排序,泡沫排序,快速排序,合併排序等)用列表解釋。我們沒有針對Map,Graph,Tree的特定排序算法嗎?排序算法的列表,設置,地圖,樹和圖
回答
這是可能的,但不常見。
如果你想要一個排序樹,你通常會按排序順序構建它。重新排列樹中的節點/分支是相當常見的。如果您正在構建二叉搜索樹,則可能會重新排列節點以保持平衡。如果您在編譯器中使用抽象語法樹,則可以重新排列節點以優化計算。
地圖是一個更抽象的結構,可以使用二叉搜索樹,跳過列表,B樹,哈希表等實現。其中大多數假設某些特定的內容順序。
圖基本上是樹的泛化。將某些類型的排序應用於圖形當然是可能的(例如,圖形上的拓撲排序很常見)。如果數據具有自己的某種結構,那麼通常會使用圖表,並將其減少爲有序序列會使圖表中的大量數據丟失。
例如,圖形的典型用法可能是將火車站表示爲節點,並將這些站點之間的連接作爲圖形中的弧線進行訓練。然後,您可以通過這些圖表來找出通過這些鐵路連接從一個城市到另一個城市的方式。
從圖表中提取數據的一個子集(例如城市名稱)並將數據分類爲一個序列(例如獲取特定站點的出發列表,按出發時間排序,並列出每個的目的地。您可能還想要生成(主要)目的地的排序列表,以及每個目的地的出發時間。
這些確實會提取數據,然後對提取的數據進行排序,而不是排序圖本身。整個原因(或者大部分原因,無論如何)圖形首先被構建爲圖形是因爲它包含的數據不會輕易地按照一個特定順序減少到一個列表。
你的意思是說,Set,Tree,Map,Graph都是以結構化的方式創建的,所以它不常見的排序 – VijayM 2014-11-01 17:58:40
或多或少,無論如何,是的。 – 2014-11-01 18:05:05
- 1. 計算樹狀圖樹葉的排序
- 2. 在地圖上排序點的算法?
- 3. 排序樹圖
- 4. 排序的Java地圖由值列表
- 5. 搜索,排序和圖算法問題
- 6. 排序地圖列表<String,String>
- 7. 將地圖轉換爲排序列表
- 8. 排序在java中的列表/樹中設置的意義
- 9. 排序沒有比較器,陣列列表或樹集的地圖
- 10. 算法就地陣列的重排序
- 11. 列表視圖列排序
- 12. 排序的列表視圖
- 13. 計算在地圖列表
- 14. 按地圖排序列表,使用鍵值和以後的值
- 15. 樹視圖和列表視圖控件
- 16. 樹形圖和列表視圖
- 17. 排序地圖
- 18. 列表和地圖
- 19. 遞歸排序算法的決策樹
- 20. 試圖瞭解Knuth的排列算法
- 21. 排序hasmap樹形圖
- 22. Python樹遍歷和排序排序列表中的項目組
- 23. 排序對象列表的算法
- 24. 設置列表的圖標
- 25. css圖層的排序和排列
- 26. C#列表視圖排序
- 27. 排序列表視圖
- 28. 序列化樹圖
- 29. 列表/樹/堆棧 - 算法
- 30. 構建樹視圖算法
http://mitpress.mit.edu/books/introduction-algorithms是你的答案。 :) – specialscope 2014-11-01 15:45:21