开发者社区 问答 正文

5000个数中找出10个最大的,用哪种排序算法比较好

5000个数中找出10个最大的,用哪种排序算法比较好

展开
收起
知与谁同 2018-07-16 11:09:59 1774 分享 版权
1 条回答
写回答
取消 提交回答
  • TA有点害羞,没有介绍自己...
    这道题的最优时间复杂度是O(n)。所以如果非要用排序算法,在题目条件允许的情况下,请尽量选择桶排序等O(n)的排序算法。
    另一个解法是建一个大小为10的堆,顺序遍历这个数组,堆满了就把堆顶的元素去掉,这样最后得到的就是最大的10个元素了。时间复杂度为O(n log 10)。
    2019-07-17 22:49:33
    赞同 展开评论
问答分类:
问答地址: