我有全都有時間戳標記的上次更新對象的數組。我想獲得只包含最近更新項目的數組的子集。我將僅從50到100的數組中檢索5個元素,並且性能是我的首要任務,所以我同意使用其中一個類方法對整個數組進行排序。這樣做的最好方法是什麼?最有效的方法排序爲X/N數組中的元素 - .NET
0
A
回答
1
我會用一個insertion sort,打破了一旦你選擇了所需數量的元素。該解決方案具有O(k * n)複雜度,其中k是要提取的元素的數量。
還有一些算法,找到一個排序的數組的第k最大元素爲O(n)
How to find the kth largest element in an unsorted array of length n in O(n)?
一旦你找到了第K個最大元素X,你可以遍歷數組,並挑選所有這比十,你都保證有完全相同的K-1元優於X.
+0
這看起來不錯。如果沒有人在接下來的幾個小時內發佈更好的答案,我會接受。 – evanmcdonnal
0
如果你只有100個元素更大的元素,那麼我會簡單地對它們進行排序。 否則,我會使用基於堆的優先級隊列實現。 O(n)來創建,每一次插入/刪除都有一個與它相關的O(logn)成本。
相關問題
- 1. 最有效的方法來排序2d數組排序到1d排序數組
- 2. 最有效的方式來按子元素排列數組?
- 3. 從數組中刪除唯一元素的最有效方法
- 4. 排序數組的有效方法?
- 5. 查找元組中下一個元素的最有效方法
- 6. 最有效的方法來刪除嵌套的數組元素
- 7. 找到數組中連續3個元素序列的最有效方法?
- 8. 有效的方法來排序數組(排序的方法必須從數組中挑選一個元素,並將其放在數組中的其他地方)
- 9. 對多維數組進行排序的最有效方法(php)
- 10. 在未排序列表中查找元素的最有效方法是什麼?
- 11. 獲得數組N的最後一個元素的最有效方法
- 12. 查找元素是否存在於未排序數組中的最快方法?
- 13. 確定元素是否在排序數組中的最快方法
- 14. 從地圖中查找排名前100的元素的最有效方法
- 15. 爲特定元素製作ajax請求的最有效方法
- 16. 按元素排序數組的數組
- 17. 查找n個排序元素的中間k組合的高效方法
- 18. 從Java中的URL中排序文本的最有效方法
- 19. 最有效的方法來拆分排序的數組周圍的一個鍵
- 20. 有沒有更高效的方法來排序這個數組?
- 21. 從最小到最大數值排列數組的最有效方法?
- 22. 排序數組沒有排序()方法
- 23. 如何從排序的數組中找到最大的元素?
- 24. 高效的數組元素未排序在Java中
- 25. 從另一個數組中刪除一個數組的所有元素的最有效方法是什麼?
- 26. 在Java中排序和交換元素的最快方法
- 27. 排序數組的高效方法我對自己排序
- 28. 將元素添加到排序數據結構的有效方法
- 29. 使用C中的子程序排序並行數組的最佳或最有效的方法?
- 30. 部分排序爲N個未排序組的有效算法
是固定大小的數組?還是有一些物體被推到頂部?你爲什麼反對排序數組? –
陣列將被固定在通過它進行排序時的大小,但我不知道這將是多大的前手。我反對排序整個事物,而不是整理它。我只是想讓它排序五個元素,然後再打破。沒有必要對其餘的元素進行排序,因爲它們不會被使用,數組也不會持久化,所以我不會看到未來的性能增益。 – evanmcdonnal