快速排序法-java實現

獲取中軸的位置

public int getMiddle(int[] list,int low,int high){
    int temp=list[low];//將第一個數作爲中軸
    while(low<high){
    //比中軸小的記錄移到低端位置
    while(low<high&&list[high]>=temp)
        high--;
    list[low]=list[high];
    //比中軸大的記錄移到高端位置
    while(low<high&&list[low]<=temp)
        low--;
    list[high]=list[low];
    }
    list[low]=temp;
    return low;
}

遞歸實現排序

public void _quickSort(int[] list,int low,int high){
    if(low<high){
    int middle=getMiddle(list,low,high);
    //將中軸的左邊排序
    _quickSort(list,low,middle-1);
    //將中軸的右邊排序
    _quickSort(list,middle+1,high);
}

總結

別人說可以將類型分化得更細一些,比如將他們分爲三類,小於、等於、大於;會比較快速,以後再嘗試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章