一 基于快速排序的选择方法
// class Solution {
// public:
// int findKthLargest(vector<int>& nums, int k) {
// int n = nums.size();
// int pos = 0;
// pos = quickSelcet(nums,k);
// return pos;
// }
// private:
// int quickSelcet(vector<int>& nums, int k){
// int partition = nums[rand() % nums.size()];
// vector<int>small,equal,big;
// for(int n : nums){
// if(n < partition) small.emplace_back(n);
// else if(n > partition) big.emplace_back(n);
// else equal.emplace_back(n);
// }
// if(k <= big.size()) { return quickSelcet(big,k);}
// else if(k > nums.size() - small.size()) {return quickSelcet(small, small.size() + k - nums.size());}
// else return partition;
// }
// };
二 基于堆排序的选择方法