def quick_sort(L, left, right):
if left > right:
return L
key = L[left] # 定义最左边的元素
low = left
high = right # 定义最右边的元素
while left < right:
while left < right and L[right] >= key:
right -= 1
print("---start-r", L)
L[left] = L[right]
L[right] = key
print("---end-r", L)
while left < right and L[left] <= key:
left += 1
print("---start-r", L)
L[right] = L[left]
L[left] = key
quick_sort(L, left+1, high)
return L
L = [7, 6, 9, 5, 4]
left = 0
right = len(L) - 1
print(quick_sort(L, left, right))
if left > right:
return L
key = L[left] # 定义最左边的元素
low = left
high = right # 定义最右边的元素
while left < right:
while left < right and L[right] >= key:
right -= 1
print("---start-r", L)
L[left] = L[right]
L[right] = key
print("---end-r", L)
while left < right and L[left] <= key:
left += 1
print("---start-r", L)
L[right] = L[left]
L[left] = key
print("---end-r", L)
# 循环结束时,left=right
quick_sort(L, low, left-1)quick_sort(L, left+1, high)
return L
L = [7, 6, 9, 5, 4]
left = 0
right = len(L) - 1
print(quick_sort(L, left, right))