public class NC88 {
public static void main(String[] args) { int[] a={3,7,1,2,9,4,5,3,7}; int kth = findKth(a, 9, 2); System.out.println(kth); } public static int findKth(int[] a ,int n,int K){ Quick_Sort(a,0,n-1); int res=a[n-K]; return res; } /** * 根据下标交换两数 * @param array * @param i * @param j */ public static void swap(int [] array,int i,int j){ int temp=array[j]; array[j]=array[i]; array[i]=temp; } /** * 快排,左右指针与哨兵值比较 * @param array * @param l 左边界 * @param r 右边界 */ public static void Quick_Sort(int[] array,int l,int r){ if (l>=r){return;} int i=l;int j=r; while (i<j){ while (i<j&&array[j]>=array[l]) j--; while (i<j&&array[i]<=array[l]) i++; swap(array,i,j); } swap(array,l,i); Quick_Sort(array,l,i-1); Quick_Sort(array,i+1,r); }
}