python 快排

def quicksort(arr, left,  right):
if (left > right):
return
key = arr[left]
i = left
j = right
while (i != j):
while (arr[j] >= key and i < j):
j=j-1
while (arr[i] <= key and i < j):
i=i+1
temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
arr[left] = arr[i]
arr[i] = key
quicksort(arr, left, i-1)
quicksort(arr, j+1, right)

if __name__ == '__main__':
arr = [3, 5, 6, 8, 2, 1, 9, 7, 4, 10]
quicksort(arr, 0, len(arr) - 1)
print(arr)//key为最左边第一个 只要左边还小于友人便就进行循环 先从右边找一个比key小的 再从左边找一个key大的 进行交换 一直重复 直到排序完
posted @ 2023-03-20 14:44  富兰克林_YY  阅读(7)  评论(0编辑  收藏  举报