题解 | #寻找第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); } }