请帮我写一个python 的快速排序程序
时间: 2023-08-28 15:14:32 浏览: 80
python快速排序(csdn)————程序.pdf
好的,以下是一个简单的Python快速排序程序:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
left = []
right = []
for i in range(1, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
```
这个程序定义了一个快速排序的函数quick_sort,它接受一个列表arr作为参数,并返回一个排好序的列表。
在函数中,如果列表的长度小于等于1,就直接返回该列表,因为它已经排好序了。否则,选择列表中的第一个元素作为基准(pivot),将比基准小的元素放在左边的列表left中,将比基准大的元素放在右边的列表right中。然后递归地对left和right进行快速排序,并将排好序的left、基准、right三个列表按顺序连接起来返回即可。
使用该函数可以对一个列表进行快速排序,例如:
```python
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```
输出结果为:
```
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```
这个程序的时间复杂度为O(nlogn),是一种比较高效的排序算法。
阅读全文