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