第K大元素
1. Link
2. 描述
有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。
给定一个整数数组a,同时给定它的大小n和要找的K(1<=K<=n),请返回第K大的数(包括重复的元素,不用去重),保证答案存在。
示例1
输入:
[1,3,5,2,2],5,3复制返回值:
2复制
示例2
输入:
[10,10,9,9,8,7,5,6,4,3,4,2],12,3复制返回值:
复制说明:
3. 思路
method 1: quickselect
Time: O(nlogn) if array is not almost sorted, Otherwise, O(n^2)
Space: O(1), inplace
method 2: heapsort
Time: O(Nlogk)
Space: O(k) for heap storage
4. Coding
QuickSelect (quicksort ) method
2. Heap Sort method
Last updated
Was this helpful?