数组中的第K个最大元素
题目
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
示例 1:
输入: [3,2,1,5,6,4] 和 k = 2
输出: 5
示例 2:
输入: [3,2,3,1,2,4,5,5,6] 和 k = 4
输出: 4
说明:
你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。
java代码
1 | /** |
总结
- 应用了快排中partition的函数,参看partition函数的单边循环法
- 这种方法在提交时,运行时间效果不是很好,不知道有什么可以改进的地方吗?
- partition单边循环时,可以用一个数组(4 7 6 5 3 2 8 1)演示一下就知道怎么写了