/**
 * 
 * @param a int整型一维数组 
 * @param aLen int a数组长度
 * @param n int整型 
 * @param K int整型 
 * @return int整型
 */
/*****************************************************
* 快速排序将数组从大到小排列,第K个最大元素下标为K-1
*****************************************************/
int partition(int *a, int left, int right)
{
    int i = left+1;
    int j = right;
    int tmp;
    int pivot = a[left];
    
    while(1)
    {
        while(i <= j && a[i] >= pivot) i++;
        while(i <= j && a[j] <= pivot) j--;
        if(i >= j)
            break;
        tmp  = a[i];
        a[i] = a[j];
        a[j] = tmp;
    }
    a[left] = a[j];
    a[j] = pivot;
    return j;
}

int *quickSort(int *a, int left, int right)
{
    int mid;
    if(left < right)
    {
        mid = partition(a, left, right);
        
        a = quickSort(a, left, mid-1);
        a = quickSort(a, mid+1, right);
    }
    return a;
}


int findKth(int* a, int aLen, int n, int K ) {
    // write code here
    
    quickSort(a, 0, aLen-1);
    return a[K-1];
}