def quick_sort(arr):
# 基本情况:如果数组长度小于等于1,则直接返回该数组
if len(arr) <= 1:
return arr
else:
# 选择基准元素,这里选择数组中间的元素
pivot = arr[len(arr) // 2]
# 将数组分为三部分:小于基准、等于基准、大于基准
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
# 递归地对左边和右边的数组进行排序,并与中间部分合并
return quick_sort(left) + middle + quick_sort(right)
# 示例
print(quick_sort([3, 6, 8, 10, 1, 2, 1]))
快速排序是一种分治算法,它通过选择一个“基准”元素(pivot),然后将数组分成比基准小的部分和比基准大的部分,最后递归地对这两部分进行排序。