查找最小的k 个元素

来源:互联网 发布:好用的软件源 编辑:程序博客网 时间:2024/06/09 13:38
查找最小的k 个元素
题目:输入n 个整数,输出其中最小的k 个。
例如输入1,2,3,4,5,6,7 和8 这8 个数字,则最小的4 个数字为1,2,3 和4。
ANSWER:
This is a very traditional question...
O(nlogn): cat I_FILE | sort -n | head -n K
O(kn): do insertion sort until k elements are retrieved.

O(n+klogn): Take O(n) time to bottom-up build a min-heap. Then sift-down k-1 times.

思路:第一反应是排序,然后找出最小的k个数即可。但是不同的排序针对本题效率不一样。

0 0
原创粉丝点击