partition函数为实现快速排序算法的关键函数,其作用是给定一个数组arr[]和数组中任意一个元素a,重排数组使得a左边都小于它,右边都不小于它。
public class Partition {
public static int partition(int[] arr,int start,int end,int desIndex){
int des=arr[desIndex];
swap(arr[desIndex],arr[end]);
int smallIndex=start;
for(int i=start;i<end;i++){
if (arr[i]<des) {
swap(arr[i],arr[smallIndex]);
smallIndex++;
}
}
swap(arr[smallIndex],arr[end]);
return smallIndex;
}
public static void swap(int a,int b){
int t=a;
b=a;
a=t;
}
}