快速排序算法的实现。任意输入20个整数,对这20个整数进行快速排序。要求使用末元素作为划分基准。
时间: 2024-05-02 12:21:01 浏览: 36
快速排序算法的实现可以分为两个部分:划分和递归排序。
划分:选择一个数作为划分基准,一般可以选择数组的末元素。然后将整个数组分为两个部分,左边的部分都小于基准,右边的部分都大于等于基准。可以使用两个指针 i 和 j 分别从数组的两端开始扫描,i 扫描到大于等于基准的数时停止,j 扫描到小于基准的数时停止,然后交换 i 和 j 对应的数,最后基准和 i 所在位置的数交换。
递归排序:将左边的部分和右边的部分分别递归排序。
实现代码如下:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[-1]
i, j = 0, len(arr) - 2
while i <= j:
if arr[i] < pivot:
i += 1
elif arr[j] >= pivot:
j -= 1
else:
arr[i], arr[j] = arr[j], arr[i]
i += 1
j -= 1
arr[i], arr[-1] = arr[-1], arr[i]
left = quick_sort(arr[:i])
right = quick_sort(arr[i+1:])
return left + [arr[i]] + right
arr = [int(x) for x in input().split()]
print(quick_sort(arr))
```
输入格式为 20 个用空格分隔的整数,输出为排序后的结果。
阅读全文