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);
}}

京公网安备 11010502036488号