[LintCode]5.第k大元素

在数组中找到第k大的元素

 注意事项

你可以交换数组中的元素的位置

样例

给出数组 [9,3,2,4,8],第三大的元素是 4

给出数组 [1,2,3,4,5],第一大的元素是 5,第二大的元素是 4,第三大的元素是 3,以此类推

思路:基于快速排序,找到一个轴点,左边的比他大,右边的比他小

class Solution {
public:
    /*
     * param k : description of k
     * param nums : description of array and index 0 ~ n-1
     * return: description of return
     */
    int kthLargestElement(int k, vector nums) {
         return quickSort(k,nums,0,nums.size()-1);  
    }
    //对从left到right的元素进行从大到小的排序
    int quickSort(int k,vector nums,int left,int right){
        int i = left, j = right;
        int temp= nums[i];
        while(itemp) i++;//从左往右扫描找到一个小于temp的元素
            if(i


你可能感兴趣的:(数据结构,排序,数据结构,数组和矩阵)