快排:https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf?tpId=295&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj 牛客网地址
快排解决办法一
import java.util.*;
public class Solution {
public int findKth(int[]a ,int n,int K){
quickSort(a,0,a.length-1);
return a[n-K];
}
public void quickSort(int []a,int low,int high){
if(low>=high){
return;
}
int index=quickSortMeta(a,low,high);
if(low<index-1){
quickSort(a,low,index-1);
}
if(high>index+1){
quickSort(a,index+1,high);
}
}
public int quickSortMeta(int[] a,int low,int high){
int temp=a[low];
while(low<high){
while(low<high && a[high]>temp){
high--;
}
if(low<high){
a[low]=a[high];
}else{
break;
}
while(low<high&& a[low]<=temp){
low++;
}
if(low<high ){
a[high]=a[low];
}else{
break;
}
if(low==high){
break;
}
}
a[low]=temp;
return low;
}
}