题目描述:
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
解题思路:
思路一:
时间复杂度: $O(nlogn)$, 空间复杂度: $O(1)$.
1 | class Solution { |
思路二:
冒泡排序 每次找最大或者最小的先排好,两个指针都指向前头
时间复杂度: $O(n^2)$, 空间复杂度: $O(1)$.
1 | class Solution { |
思路三:
快速排序 三个指针,两个指向前头,一个指向后面,然后找到一个数,数的一边比他小,另一边比他大
时间复杂度: $O(nlogn)$, 空间复杂度: $O(1)$.
1 | class Solution { |