在数组C中找到n个最小值

时间:2015-02-20 16:27:02

标签: c arrays algorithm sorting

我只是想知道最有效的算法。

1 个答案:

答案 0 :(得分:2)

O(n)中:您可以使用selection algorithm查找5 * O(n) = O(n)时间内的5个最小元素。但实际上,以下方法更有效:

O(nlogn)中:对数组进行排序(使用在O(nlogn)时间内运行的几种算法中的任何一种),然后查看前五个元素。

虽然O(n)选择解决方案渐近优于O(nlogn)排序解决方案,但实际上,由于O(n)选择算法中隐藏的常量非常大,对数组进行排序将是更快。