package aaa;
import java.util.*;
public class TheKth {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] nums=new int[]{3,5,6,2,3,7,1,5};
int kth=Sort(nums,0,nums.length-1,5);
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+" ");
}
System.out.println();
System.out.print(kth);
}
public static int Search(int[] nums,int begin,int end,int k){
int temp=nums[begin];
while(begin<end){
while(begin<end && nums[end]<temp){
end--;
}
nums[begin]=nums[end];
while(begin<end && nums[begin]>=temp){
begin++;
}
nums[end]=nums[begin];
}
nums[begin]=temp;
return begin;
}
public static int Sort(int[] nums,int begin,int end,int k){
int mid=Search(nums,begin,end,k);
if(mid==k-1){
return nums[mid];
}
else if(mid<k-1){
return Sort(nums,mid+1,end,k);
}else{
return Sort(nums,begin,mid-1,k);
}
}
}
package aaa;
import java.util.*;
public class TheKth {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] nums=new int[]{3,5,6,2,3,7,1,5};
int kth=Sort(nums,0,nums.length-1,5);
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+" ");
}
System.out.println();
System.out.print(kth);
}
public static int Search(int[] nums,int begin,int end,int k){
int temp=nums[begin];
while(begin<end){
while(begin<end && nums[end]<temp){
end--;
}
nums[begin]=nums[end];
while(begin<end && nums[begin]>=temp){
begin++;
}
nums[end]=nums[begin];
}
nums[begin]=temp;
return begin;
}
public static int Sort(int[] nums,int begin,int end,int k){
int mid=Search(nums,begin,end,k);
if(mid==k-1){
return nums[mid];
}
else if(mid<k-1){
return Sort(nums,mid+1,end,k);
}else{
return Sort(nums,begin,mid-1,k);
}
}
}