1.先快排
2.倒序遍历,如果相邻数据不重复k--,重复k不变
3.当k=1时,就是第K大数据
public int findKth(int[] a, int n, int K) {
        // write code here
        qkSort(a,0,n-1);
        int index = K;
        for(int i=n-1;i>=0;i--){
            if(i != n-1){
                --index;
                if(a[i]==a[i+1]){
                    ++index;
                }
            }
            if(index==1){
                return a[i];
            }
        }
        return index;
    }

/**
     * 快排
     * @param a
     * @param low
     * @param len
     */
    public static void qkSort(int[] a, int low, int len){
    	if(low>len)return;
        int i=low;//左侧指针
        int j=len;//右侧指针
        int root = a[low];
        int temp;
        while(i<j){
        	while(i<j && a[j]>=root)j--;//=重点,先右
            while(i<j && a[i]<=root)i++;
         if(i<j){
             temp = a[i];
             a[i]=a[j];
             a[j]=temp;
         } 
        } 
        a[low] = a[i];
        a[i] = root;
        qkSort(a,low,j-1);//先左
        qkSort(a,j+1,len);
        
    }