algorithm - 如何在不对整个列表进行排序的情况下获取列表的前 10 个排序项

标签 algorithm sorting

问题是我有一个包含 100 万个数字的列表,但我只想要排序列表的前 10 个,但我不想对整个列表进行排序?这可能吗?

最佳答案

是的。您只需遍历列表一次,然后存储十个最小的数字。该算法将是 O(n)(实际上,O(n*10) 最坏情况)

Foreach (list)
 - Check if current item is smaller than the biggest item in the sorted Array[10]
 - If so, put the current item at the right spot (sorted) in the array (insertionsort), bumping away the biggest item.

关于algorithm - 如何在不对整个列表进行排序的情况下获取列表的前 10 个排序项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3135579/

相关文章:

javascript - 钻石方形算法固定大小

Python:如何在未排序列表(大数据集)中查找大于某个数字的所有项目

database - 排序上/下投票项目的技术

mysql - 正确排序 CONCAT 值 MYSQL

c++ - 多线程合并排序的奇怪结果

algorithm - 为什么桶排序在输入排序后运行得更快?

algorithm - 感知器算法 - 调整

图直径的算法?

python - 将数组拆分为均匀分布的 block

C比较两个位图的最快方法