快速排序是一種高效的排序演算法,並基於分割數據的數組成更小的數組。一個大的數組被劃分成兩個數組,其中一個保持值比規定的值小的表示基於支點在其上的分區是由與另一個數組保存值大於支點的值。
快速排序分割數組,然後調用自身遞歸兩次排序得到的兩個子數組。該演算法對大型數據集作為平均和最壞情況的複雜性相當有效率為O(nlogn),其中n是專案的數目。

偽代碼
A : array of items procedure quickSort(left, right) if right-left <= 0 return else pivot = A[right] partition = partitionFunc(left, right, pivot) quickSort(left,partition-1) quickSort(partition+1,right) end if end procedure function partitionFunc(left, right, pivot) leftTutorialser = left -1 rightTutorialser = right while True do while A[++leftTutorialser] < pivot do //donothing end while while rightTutorialser > 0 && A[--rightTutorialser] > pivot do //donothing end while if leftTutorialser >= rightTutorialser break else swap leftTutorialser,rightTutorialser end if end while swap leftTutorialser,right return leftTutorialser end function procedure swap (num1, num2) temp = A[num1] A[num1] = A[num2] A[num2] = temp; end procedure
要查看C編程語言快速排序的實現,請點擊這裏
上一篇:
希爾排序實例程式(C程式)
下一篇:
快速排序實例程式(C語言)