标签: c arrays algorithm sorting
我只是想知道最有效的算法。
答案 0 :(得分:2)
在O(n)中:您可以使用selection algorithm查找5 * O(n) = O(n)时间内的5个最小元素。但实际上,以下方法更有效:
O(n)
5 * O(n)
在O(nlogn)中:对数组进行排序(使用在O(nlogn)时间内运行的几种算法中的任何一种),然后查看前五个元素。
O(nlogn)
虽然O(n)选择解决方案渐近优于O(nlogn)排序解决方案,但实际上,由于O(n)选择算法中隐藏的常量非常大,对数组进行排序将是更快。