为以下代码写上注释:def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[-1] left, right = 0, len(arr) - 2 for i in range(left, right + 1): if arr[i] < pivot: arr[i], arr[left] = arr[left], arr[i] left += 1 elif arr[i] > pivot: arr[i], arr[right] = arr[right], arr[i] right -= 1 arr[left], arr[-1] = arr[-1], arr[left] return quick_sort(arr[:left]) + [pivot] + quick_sort(arr[left+1:])
时间: 2024-04-27 09:19:51 浏览: 94
# 定义快速排序函数,输入参数为一个列表
def quick_sort(arr):
# 如果输入列表长度小于等于1,就直接返回该列表
if len(arr) <= 1:
return arr
# 以最后一个元素为基准值
pivot = arr[-1]
# 左指针为0,右指针为倒数第二个元素的下标
left, right = 0, len(arr) - 2
# 遍历左右指针之间的所有元素
for i in range(left, right + 1):
# 如果当前元素小于基准值,就将该元素与左指针所指向的元素交换,并将左指针向右移动一位
if arr[i] < pivot:
arr[i], arr[left] = arr[left], arr[i]
left += 1
# 如果当前元素大于基准值,就将该元素与右指针所指向的元素交换,并将右指针向左移动一位
elif arr[i] > pivot:
arr[i], arr[right] = arr[right], arr[i]
right -= 1
# 将基准值放到左右指针的中间
arr[left], arr[-1] = arr[-1], arr[left]
# 对基准值左边的部分和右边的部分分别递归进行快速排序,并将它们和基准值合并起来
return quick_sort(arr[:left]) + [pivot] + quick_sort(arr[left+1:])
阅读全文