用Python实现快速排序
快速排序是一种常见的排序算法,采用分治的思想,通过递归地将数组分成较小的子数组来进行排序。
实现快速排序的基本思想是选择一个基准元素,将数组中小于基准元素的元素放在它的左边,大于基准元素的元素放在它的右边,然后分别对左右两个子数组进行递归处理,直到子数组的大小为1或0。
以下是用Python实现快速排序的代码:
def quicksort(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 quicksort(less) + [pivot] + quicksort(greater)
在这个实现中,我们首先检查数组的长度是否小于等于1,如果是,直接返回原数组。
否则,我们选择数组的第一个元素作为基准元素,将数组中小于等于基准元素的元素放在less数组中,大于基准元素的元素放在greater数组中。然后递归地对less和greater数组进行排序,最后将结果合并并返回。
使用该实现,可以通过以下代码对一个数组进行快速排序:
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_arr = quicksort(arr)
print(sorted_arr)
输出为:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
原文地址: https://www.cveoy.top/t/topic/byhH 著作权归作者所有。请勿转载和采集!