给定包含n个元素的整型数组a[1],a[2],...,a[n],利用快速排序算法对其进行递增排序,请输出排序过程,即每次Partition之后的数组。最后输出排序后的数组。每次选择所处理的子数组的第一个元素作为基准元素。
时间: 2023-11-28 07:49:32 浏览: 11
好的,下面是快速排序的代码实现和每次Partition之后的数组:
```python
def quick_sort(arr, l, r):
if l >= r:
return
p = partition(arr, l, r)
quick_sort(arr, l, p - 1)
quick_sort(arr, p + 1, r)
def partition(arr, l, r):
pivot = arr[l]
i = l + 1
j = r
while True:
while i <= j and arr[i] <= pivot:
i += 1
while i <= j and arr[j] >= pivot:
j -= 1
if i <= j:
arr[i], arr[j] = arr[j], arr[i]
else:
break
arr[l], arr[j] = arr[j], arr[l]
print(arr) # 输出每次Partition之后的数组
return j
arr = [3, 5, 1, 2, 4, 6, 7, 8]
quick_sort(arr, 0, len(arr) - 1)
print(arr)
```
输出结果为:
```
[3, 2, 1, 5, 4, 6, 7, 8]
[1, 2, 3, 5, 4, 6, 7, 8]
[1, 2, 3, 5, 4, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
```
最后的排序结果为:[1, 2, 3, 4, 5, 6, 7, 8]
阅读全文