Q
數組排序
0
A
回答
1
忽略了一會兒應用特定的信息,考慮排序插入要求,最壞的情況下,O(n)的每個元素的操作。對於n個元素,這當然會給我們O(n^2)。如果這聽起來很熟悉,那是因爲你在做什麼(正如另一位評論者指出的那樣)是一種插入排序。相比之下,在整個列表中執行一個快速排序將會花費更長的時間O(n log n)時間。
那麼,這是否意味着你一定要等到最後才能排序?不可以。要記住的重要一點是O(n log n)是我們可以在一般情況下進行排序的最佳選擇。您對應用程序特定的數據知識會影響工作的最佳算法。例如,如果你知道你的數據已經基本排序了,那麼插入排序會給你線性時間複雜度。
您的里程可能會有所不同,但我認爲研究的一般問題時,算法的觀點是有用的:「當我要排序?」
+0
感謝大衛。由於數據幾乎是隨機的,我想我會在最後對數組進行排序。 – I3i0 2013-04-23 01:31:53
1
這取決於什麼對你至關重要。你需要能夠插入非常快(很多條目,但很少的查詢),或者你需要能夠非常快速地查詢並插入緩慢(很多查詢但不是很多條目)?
這基本上是你要解決的問題。當你知道這一點時,你可以選擇一個適當的排序算法並應用它。
編輯:這是假設任何選擇實際上很重要。這很大程度上取決於您的活動(插入vs查詢)以及您需要排序的數據量。
相關問題
- 1. 排序數組排序
- 2. 數組排序
- 3. 數組排序
- 4. 數組排序
- 5. 數組排序
- 6. 數組排序()
- 7. 排序數組
- 8. 排序數組
- 9. 排序數組
- 10. 排序數組
- 11. 用數組排序數組
- 12. 按照升序排序數組數組
- 13. 排序數組 - 從外部數據對數組排序
- 14. PHP排序數組
- 15. MongoDB排序數組
- 16. JS數組排序
- 17. 排序PHP數組
- 18. 排序數組值
- 19. Python:Alphabet數組排序
- 20. 排序JavaScript數組
- 21. 排序int數組
- 22. 排序PHP數組
- 23. Android排序數組
- 24. PHP數組排序
- 25. PHP數組排序
- 26. 排序simple_html_dom數組
- 27. 數組排序(C++)
- 28. javascript數組排序?
- 29. javascript排序數組
- 30. PHP排序數組
我們在談什麼樣的陣列,10個項目,100萬個項目? – 2013-04-23 00:42:39
「或者每次向它添加元素時最好對它進行排序?」 - 聽起來有點像插入排序不? – Mysticial 2013-04-23 00:42:41
這是什麼語言? PHP,HTML,Javascript? – Max 2013-04-23 00:42:43