快速排序算法实现:Python中的sorted()函数
发布时间:2023-07-02 17:57:25
快速排序是一种高效的排序算法,其实现原理是通过选择一个基准元素,将数组分成两部分,其中一部分元素都小于基准元素,另一部分元素都大于基准元素,然后递归地对两部分继续进行快速排序。
在Python中,可以使用sorted()函数来实现快速排序。sorted()函数是Python内置的排序函数,可以对可迭代对象进行排序,并返回一个新的已排序的列表。
具体实现如下:
def quick_sort(arr):
# 判断数组长度是否小于等于1
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, 7, 3, 9, 1, 6]
sorted_arr = quick_sort(arr)
print(sorted_arr)
运行结果为:[1, 2, 3, 5, 6, 7, 9]
在上述代码中,首先定义了一个quick_sort()函数来进行快速排序。在函数内部,通过判断数组长度是否小于等于1来递归地划分子数组,直到数组长度为1,表示已经排好序。选择 个元素作为基准元素,并通过列表推导式将小于等于基准元素的元素放入less列表,将大于基准元素的元素放入greater列表。然后将递归地对less和greater进行快速排序,并将排好序的子数组和基准元素拼接在一起返回。
最后,通过调用quick_sort()函数对给定的数组进行排序并输出结果。
