1、快速排序算法的实现。任意输入20个整数,对这20个整数进行快速排序。要求使用末元素作为划分基准。
时间: 2024-04-29 18:24:10 浏览: 81
快速排序是一种高效的排序算法,其实现思路是将一个数组划分成两个子数组,其中一个子数组的所有元素都比另一个子数组的所有元素小,然后对这两个子数组递归进行排序。
具体实现过程如下:
1. 选择一个元素作为划分基准,一般是数组的最后一个元素。
2. 遍历数组,将小于划分基准的元素放在左边,大于划分基准的元素放在右边,并返回划分后基准元素的位置。
3. 递归对左右两个子数组进行排序。
以下是使用末元素作为划分基准的快速排序实现代码:
```python
def partition(arr, low, high):
pivot = arr[high] # 选择末元素作为划分基准
i = low - 1
for j in range(low, high):
if arr[j] < pivot:
i += 1
arr[i], arr[j] = arr[j], arr[i]
arr[i+1], arr[high] = arr[high], arr[i+1]
return i+1
def quicksort(arr, low, high):
if low < high:
pivot = partition(arr, low, high)
quicksort(arr, low, pivot-1)
quicksort(arr, pivot+1, high)
arr = [23, 45, 12, 67, 89, 34, 56, 78, 90, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
quicksort(arr, 0, len(arr)-1)
print(arr)
```
输出结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 23, 34, 45, 56, 67, 78, 89, 90]
```
阅读全文