快速排序算法的实现。任意输入20个整数,对这20个整数进行快速排序。要求使用末元素作为划分基准
时间: 2024-05-05 08:17:26 浏览: 79
编程实现希尔、快速、堆、归并排序算法,随机产生10000个随机数存入磁盘文件,读取,并将不同排序方法的结果存入文件中(含报告)
5星 · 资源好评率100%
快速排序是一种高效的排序算法,其基本思想是通过分治的方式将一个大问题分解成多个小问题,并通过递归的方式求解这些小问题,最终得到整个问题的解。
快速排序的具体实现如下:
1. 选择一个基准数,一般选择最后一个元素作为基准数;
2. 将数组分为左右两个子数组,使得左边子数组中的元素都小于基准数,右边子数组中的元素都大于等于基准数;
3. 递归地对左右子数组进行快速排序,直到子数组的长度为1或0。
以下是使用末元素作为划分基准的快速排序算法的实现:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[-1] # 选择末元素作为基准数
left = []
right = []
for i in range(len(arr)-1):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
# 测试
arr = [3,1,4,2,5,8,7,6,10,9,12,11,14,13,16,15,18,17,20,19]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```
输出结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
```
这样就完成了对任意输入20个整数的快速排序。
阅读全文