麻烦给一个快速排序法的python代码
时间: 2024-05-10 17:18:55 浏览: 46
史上最全快速排序法源代码
当然,下面是一个使用递归实现的快速排序算法的 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)
```
该算法的思路是:
1. 选择一个基准点(pivot),一般选择中间的数。
2. 将数列中所有小于基准点的数字移到左边,大于基准点的数字移到右边,等于基准点的数字放中间。
3. 对左右两个数列重复以上步骤,直到每个数列只有一个数字。
使用示例:
```python
arr = [3, 2, 1, 5, 4, 9, 8, 7, 6]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```
输出结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8, 9]
```
阅读全文