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+" ");

}

}

猜你喜欢

转载自www.cnblogs.com/Coeus-P/p/9005262.html