Java实现快速排序
public class QuickSort {
public static void quickSort(int [] list){
quickSort(list, 0, list.length-1);
}
public static void quickSort(int[] list, int first, int last){
if(last>first){
int pivotIndex = partition(list, first, last);
quickSort(list, first, pivotIndex-1);
quickSort(list, pivotIndex+1, last);
}
}
//枢纽元素暂时挂起 没有走到最终位置 不降落
public static int partition(int[] list, int first, int last){
int pivot = list[first];
int low = first;
int high = last;
while(high>low){
while(low<high&&list[high]>=pivot) high--;
list[low] = list[high];
while(low<high&&list[low]<=pivot) low++;
list[high] = list[low];
}
list[low] = pivot;
return low;
}
//测试
public static void main(String[] args) {
int [] list = {2,3,2,5,6,1,-2,3,14,12};
quickSort(list);
for(int num:list)
System.out.print(num+" ");
}
}