/** * * @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]; }