题解 | #寻找第K大#快速排序
寻找第K大
http://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf
import java.util.*;
public class Solution {
public int findKth(int[] a, int n, int K) {
// write code here
quickSort(a,0,n-1);
return a[n-K];
}
public void quickSort(int[] a,int begin,int end){
if(begin>=end) return;
int pivot=a[begin];
int i=begin,j=end;
while(i!=j){
//从右向左找小于pivot的
while(i<j&&a[j]>pivot){
j--;
}
if(i<j){
a[i++]=a[j];
}
//从左向右找大于pivot的
while(i<j&&a[i]<pivot){
i++;
}
if(i<j){
a[j--]=a[i];
}
}
a[i]=pivot;
quickSort(a,begin,i-1);
quickSort(a,i+1,end);
}
}