把[3,5,7,6,9,1]列表快速排序
时间: 2023-10-10 13:13:57 浏览: 46
要快速排序一个列表,你可以使用 Python 内置的 `sort()` 方法或者使用递归实现快速排序算法。
如果你使用 `sort()` 方法,代码如下所示:
```
lst = [3, 5, 7, 6, 9, 1]
lst.sort()
print(lst)
```
输出结果为:`[1, 3, 5, 6, 7, 9]`。
如果你想使用递归实现快速排序算法,代码如下所示:
```python
def quicksort(lst):
if len(lst) <= 1:
return lst
pivot = lst[len(lst) // 2]
left = [x for x in lst if x < pivot]
middle = [x for x in lst if x == pivot]
right = [x for x in lst if x > pivot]
return quicksort(left) + middle + quicksort(right)
lst = [3, 5, 7, 6, 9, 1]
sorted_lst = quicksort(lst)
print(sorted_lst)
```
输出结果为:`[1, 3, 5, 6, 7, 9]`。
快速排序是一种高效的排序算法,其原理是通过选择一个基准元素,将数组分为两个子数组,一个包含所有小于基准元素的值,另一个包含所有大于基准元素的值。然后对这两个子数组递归地进行排序,最终将数组排序完成。
在快速排序中,选择基准元素的方式有多种。上述代码中选择的是列表中间的元素作为基准元素。然后,通过列表解析将列表分为三个部分:小于基准元素的左子列表、等于基准元素的中子列表和大于基准元素的右子列表。最后,递归地对左右子列表进行排序,并将结果与中子列表连接起来。