快速排序算法实现
时间: 2023-06-30 16:21:59 浏览: 96
快速排序的实现
快速排序是一种基于分治思想的排序算法,其基本思路是选取一个基准元素,将待排序序列分为两部分,一部分元素均小于基准元素,一部分元素均大于基准元素,然后对这两部分分别进行递归排序,最终得到一个有序序列。
快速排序的实现可以采用递归或非递归方式。
以下是递归实现的快速排序算法:
```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)
```
在该实现中,我们首先判断序列的长度是否小于等于1,如果是,则直接返回该序列。否则,我们选取第一个元素作为基准元素,将序列分成两部分,分别是小于等于基准元素的子序列和大于基准元素的子序列,并对这两部分分别递归调用快速排序函数,最后将排序后的子序列和基准元素拼接在一起返回。
快速排序的时间复杂度为 O(nlogn),空间复杂度为 O(logn)。
阅读全文