小编nov*_*elp的帖子

按顺序查找数组中最大的10%数字

给定一个带有'N'个数字的数组(N> 100).我们怎样才能找到最大的10%?(如果n/10不是整数,我们可以将它舍入)

我提出了3种算法来尝试上述问题,但我不确定哪种算法在渐近运行时是最好的.我是否可以进行任何修改以减少渐近时间?此外,如果N变得非常大,哪种算法可能仍然有效?

我列出了我对以下算法的想法,并且可以真正使用一些帮助来找出最有效的算法.

ALGO-1

我使用选择排序并在10%的数字排序后停止它.

ALGO-2

我构建了一个最大堆并保持删除最大的10%的数字

ALGO-3

没有实现这个,但我的想法是使用任何order-statistic算法来查找包含前10%数字的分区,然后使用合并排序对它们进行排序.

sorting algorithm

12
推荐指数
2
解决办法
2192
查看次数

标签 统计

algorithm ×1

sorting ×1