排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸並排序,分配排序(箱排序、基數排序)
快速排序的偽代碼:
/ /使用快速排序方法對a[ 0 :n- 1 ]排序
從a[ 0 :n- 1 ]中選擇一個元素作為m i d d l e,該元素為支點
把余下的元素分割為兩段left 和r i g h t,使得l e f t中的元素都小於等於支點,而right 中的元素都大於等於支點
遞歸地使用快速排序方法對left 進行排序
遞歸地使用快速排序方法對right 進行排序
所得結果為l e f t + m i d d l e + r i g h t
偽代碼:
1 quicksort(A, lo, hi) 2 if lo < hi 3 p = partition(A, lo, hi) 4 quicksort(A, lo, p - 1) 5 quicksort(A, p + 1, hi) 6 7 partition(A, lo, hi) 8 pivot = A[hi] 9 i = lo //place for swapping 10 for j = lo to hi - 1 11 if A[j] <= pivot 12 swap A[i] with A[j] 13 i = i + 1 14 swap A[i] with A[hi] 15 return i