我有全都有时间戳标记的上次更新对象的数组。我想获得只包含最近更新项目的数组的子集。我将仅从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