python的快速排序
时间: 2023-07-14 20:05:58 浏览: 99
快速排序是一种常用的排序算法,它基于分治的思想。下面是一个用Python实现的快速排序算法:
```python
def quick_sort(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 quick_sort(left) + middle + quick_sort(right)
# 示例
arr = [5, 3, 8, 4, 2]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```
这个实现中,我们首先选择一个基准元素(通常选择中间元素),然后将数组中小于基准的元素放在左边,大于基准的元素放在右边,相同的元素放在中间。然后递归地对左右两个子数组进行快速排序,最终将左边数组、中间数组和右边数组拼接起来得到排序后的数组。
以上是一种基本的快速排序算法实现,但需要注意的是,快速排序是一种不稳定的排序算法,它的平均时间复杂度为O(nlogn)。
阅读全文