# -*- coding: UTF-8 -*-
def parttion(arr,left,right):
key = arr[left] # left 而非 0
while left < right:
while left < right and arr[right] >= key: # 一不等 一带等
right -= 1
arr[left] = arr[right]
while left < right and arr[left] <= key: # 一不等 一带等
left += 1
arr[right] = arr[left]
arr[left] = key
return left
def quicksort(arr,left,right):
if left < right:
m = parttion(arr,left,right)
quicksort(arr,left,m-1) # 排剩下的,不含 m
quicksort(arr,m+1,right) # 排剩下的,不含 m
if __name__ == "__main__":
arr = [3,4,1,6,9,2,1,3,4]
quicksort(arr,0,len(arr)-1)
print(arr)
适合手写快速排序使用,较为简短,仅作个人笔记
经典快速排序算法 -- Python
最新推荐文章于 2020-12-06 13:59:44 发布