快速排序法如其名是一個快速的排序方法,其排序的方法是:
- 在數列中選定一個基數
- 以此基數為基準,將數列中比此數大的放在右邊,比此數小的放左邊
- 再將左右兩邊的數列重複步驟 2 的動作,直到剩下一個數字即完成排序
Python 的程式碼如下
#快速排序
#https://www.george.tw
unsort = [77, 88, 44, 33, 22, 99, 66, 55, 11]
def quicksort(unsort, left, right):
if left >= right :
return
i = left
j = right
key = unsort[left]
while i != j:
while unsort[j] > key and i < j:
j -= 1
while unsort[i] <= key and i < j:
i += 1
if i < j:
unsort[i], unsort[j] = unsort[j], unsort[i]
unsort[left],unsort[i] = unsort[i],unsort[left]
quicksort(unsort, left, i-1)
quicksort(unsort, j+1, right)
print(unsort)
quicksort(unsort, 0, len(unsort)-1)
print(unsort)
程式碼 : Github