python 怎么实现快速排序
时间: 2024-09-27 13:10:18 浏览: 57
在 Python 中,快速排序是一种常用的排序算法,其基本思想是分治法,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,直到整个序列有序。以下是简单的快速排序 Python 实现:
```python
def quicksort(arr):
if len(arr) <= 1:
return arr
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 quicksort(left) + middle + quicksort(right)
# 示例
arr = [3,6,8,10,1,2,1]
sorted_arr = quicksort(arr)
print(sorted_arr)
```
这个实现中,我们首先检查数组的长度是否小于或等于1,如果是,则直接返回(因为长度为1或0的数组已经是有序的)。接着选取中间元素作为基准(pivot),然后用列表推导式分别创建三个子列表:`left` (所有小于基准的元素),`middle` (等于基准的元素),`right` (所有大于基准的元素)。最后递归地对左右两个子列表进行快速排序,然后合并结果。
阅读全文