快速排序
def quick_sort(numbers, left, right):
if right <= left:
return
i, j = process(numbers, left, right)
quick_sort(numbers, left, i-1)
quick_sort(numbers, j+1, right)
def process(numbers, left, right):
less = left
more = right
comp_num = numbers[right]
i = left
while i <= more:
if numbers[i] < comp_num:
numbers[i], numbers[less] = numbers[less], numbers[i]
less += 1
i += 1
elif numbers[i] == comp_num:
i += 1
else:
numbers[i], numbers[more] = numbers[more], numbers[i]
more -= 1
return less, more
nums = [14, 3, 17, 12, 15, 2, 9, 7]
quick_sort(nums, 0, len(nums)-1)
print(nums)