采用剪纸加快拍
主要思路如下:选一个数tmp=a[n-1]作为枢纽,把比他小的书都放在他的左边,大的放右边。然后判断tmp的位置。
public static int quilSort(int array[],int low,int high,int k){
int i,j;
int tmp;
if(low<high) return Integer.Min_VALUE;
i=low+1;
j=high;
tmp=array[i];
while(i<j){
while(i<j &&array[j]>=tmp)
j--;
while(i<j)
array[i++]=array[j]
while(i<j&&array[i]<tmp)
i++;
if(i<j)
array[j--] = array[i];
}
array[i]=tmp;
if(i+1==k)
return tmp;
else if(i+1>k){
return quilSort(array,low,i-1,k);
}
else
return quilSort(array,i+1,high,k);
}
public static int getKMin(int array[],int k){
if(array == null) return Integer.MIN_VALUE;
if(array.length < k) return Integer.MIN_VALUE;
return quilSort(array,0,array.length-1,k);
}