列舉你所知道的排序方法,請寫出快速排序的偽代碼


排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸並排序,分配排序(箱排序、基數排序)

快速排序的偽代碼:

/ /使用快速排序方法對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

http://www.cnblogs.com/baokang/p/4737492.html

java面試題1排序算法

java面試題2排序算法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM