private static void quickSort(int data[],int low,int high){
int pivot;
if(low < high){
pivot = findPivot(data,low,high);
quickSort(data,low,pivot-1);
quickSort(data,pivot+1,high);
}
}
private static int findPivot(int[] data, int low, int high) {
int key;
//三数取中
int middle = low + (high-low)/2;
if(data[low]>data[high]){
swap(data,low,high);
}
if(data[middle] > data[high])
{
swap(data,middle,high);
}
if(data[middle] > data[low])
{
swap(data,middle,low);
}
System.out.println("key="+data[low]);
key = data[low];
while(low < high){
while(low < high && data[high] >=key)
{
high--;
}
data[low] = data[high];
while(low < high && data[low] <=key){
low++;
}
data[high] = data[low];
}
data[low] = key;
return low;
}
private static void swap(
int data[],int begin,int end){
int tmep = data[begin];
data[begin] = data[end];
data[end] = tmep;
}
QuickSort
最新推荐文章于 2024-05-14 10:51:55 发布