数组中的第K大元素问题(C++)
数组中的第K大元素问题
问题: 在未排序的数组中找到第 k 个最大的元素。请注意,需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
约定: 假设这里数组的长度为 n。
方法一:基于快速排序的选择方法
思路和方法
可以用快速排序来解决这个问题,先对原数组排序,再返回倒数第K个位置,这样的平均时间复杂度为O(nlogn)O(nlogn)O(nlogn),但其实我们可以做的更快。
首先回顾快速排序,这是一个典型的分支算法。对数组a[l...r]a[l...r]a[l...r]做快速排
原创
2021-05-20 14:50:10 ·
971 阅读 ·
0 评论