快速排序(Quick Sort)是一种常用的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,然后再分别对这两部分数据进行排序,以达到整个数据有序的目的。
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
less = [x for x in arr[1:] if x <= pivot]
greater = [x for x in arr[1:] if x > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
arr = [3, 6, 8, 10, 1, 2, 1]
sorted_arr = quick_sort(arr)
print(sorted_arr)
在这段代码中,quick_sort
函数实现了快速排序算法。首先判断数组的长度是否小于等于1,如果是则直接返回数组。选择第一个元素作为基准元素 pivot
,然后将比基准元素小的元素放到 less
数组中,将比基准元素大的元素放到 greater
数组中。最后递归对 less
和 greater
数组进行排序,并将结果合并返回。