写快速排序算法,用python实现
时间: 2024-03-30 10:13:40 浏览: 64
快速排序(Quick Sort)是一种常用的排序算法,其基本思想是:在待排序的序列中,选择一个元素作为基准值(pivot),将序列分成两个部分,一部分的所有元素小于等于基准值,另一部分的所有元素大于基准值,然后对这两部分递归进行快速排序,最终整个序列就被排序完成。
以下是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)
```
这里的实现采用了递归的思想,首先判断序列的长度是否小于等于1,如果是,则直接返回该序列;否则,选取其中一个元素作为基准值,将序列分成三部分,递归地对左半部分和右半部分进行快速排序,最后将左半部分、基准值和右半部分合并起来即可。
注意,这个实现中使用了Python的列表解析(List comprehension)语法,可以更简洁地生成新的列表。同时,为了避免递归的过程中出现最坏情况(即每次分割都只得到一个元素),可以选择中间位置的元素作为基准值(pivot),而不是第一个或最后一个元素。
相关问题
使用python实现快速排序算法
好的,使用Python可以这么实现快速排序算法:
```python
def quick_sort(array):
if len(array) <= 1:
return array
pivot = array[0]
left = []
right = []
for i in range(1, len(array)):
if array[i] < pivot:
left.append(array[i])
else:
right.append(array[i])
return quick_sort(left) + [pivot] + quick_sort(right)
```
该算法的时间复杂度一般认为是O(n log n)。
用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)
阅读全文