理解快速排序法。

我理解的快速排序可能是這樣子的,首先找一個基數,然後以這個基數對所有數據元素劃分區,然後雙方向進行再次劃分區,一直遞歸到差不多要把每個元素都歸爲一個區,哈哈,這可能嗎?


void quickSort(int object[],int left,int right)
{
    if(left < right)
    {
        int i = left,j = right,temp = object[left];
        while(i<j && object[j]>=temp)  // from right to left
            j--;
        if(i<j)
            object[i++] = object[j];
        
        
        
        while(i<j && object[i]<temp)  // from left to right
            i++;
        if(i<j)
            object[j--] = object[i];
        
        object[i] = temp;              // replace them
        quickSort(object, left,i-1);   // go on the new part
        quickSort(object, i+1, right);
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章