python写一个快速排序算法
时间: 2024-09-28 19:13:51 浏览: 40
快速排序是一种常用的高效的排序算法,它的基本思想是分治法,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序。这里是一个简单的Python实现快速排序的例子:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr # 基线条件,数组长度为1或0时直接返回
pivot = arr[len(arr) // 2] # 选择基准元素(通常是中间元素)
less = [x for x in arr if x < pivot] # 小于基准的子数组
equal = [x for x in arr if x == pivot] # 等于基准的子数组
greater = [x for x in arr if x > pivot] # 大于基准的子数组
return quick_sort(less) + equal + quick_sort(greater)
# 测试
arr = [3,6,8,10,1,2,1]
sorted_arr = quick_sort(arr)
print("Sorted array:", sorted_arr)
```
在这个代码中,我们首先检查数组是否只有一个元素或为空,如果是,则无需排序直接返回。接着选择一个基准值,将数组分为三个部分:小于、等于和大于基准的部分。然后递归地对小于和大于基准的部分进行快速排序,并最终合并结果。
阅读全文