# -*- 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 发布
本文介绍了一种简洁的快速排序算法实现方法,通过定义分区函数和递归调用快速排序函数来实现数组元素的有效排序。该算法采用了一种不完全等价的比较方式,避免了部分重复比较,提高了排序效率。
286

被折叠的 条评论
为什么被折叠?



