如何用Python函数来实现快速排序
发布时间:2023-06-30 00:22:36
快速排序是一种基于分治的排序算法,通过选择一个基准元素,将待排序的数组分成小于基准元素的部分和大于基准元素的部分,然后对两个部分进行递归排序,最终得到有序的数组。
下面是使用Python函数实现快速排序的代码:
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 = [5, 2, 8, 9, 1, 3, 7]
print(quick_sort(arr))
上述代码中,quick_sort函数接收一个数组作为输入参数,并返回经过排序后的数组。在函数内部,首先判断数组的长度是否小于等于1,如果是,则直接返回原数组,表示已经是有序的。否则,选择 个元素作为基准元素,并将数组分成小于等于基准元素的部分和大于基准元素的部分。然后,对两个部分分别进行递归排序,并将排序后的结果合并起来。最后,返回合并后的结果。
通过调用quick_sort函数,并传入一个待排序的数组作为参数,即可得到排序后的结果。在上述示例中,输入的数组为[5, 2, 8, 9, 1, 3, 7],输出结果为[1, 2, 3, 5, 7, 8, 9],即完成了快速排序。
快速排序是一种高效的排序算法,其平均时间复杂度为O(nlogn),最坏情况下的时间复杂度为O(n^2),但由于其分治的思想以及在实际应用中的表现较好,快速排序仍然是常用的排序算法之一。
