Python数据结构题编写一个实验程序,采用快速养序完成一个整数序列的递增排序,要求辅出每次划分的结果,并用相关数据进行测试
时间: 2024-11-06 17:16:55 浏览: 9
在Python中,快速排序是一种常用的排序算法,它通过分治策略实现,将数组划分为较小和较大的两部分,然后对这两部分分别进行排序。下面是编写一个实验程序,展示如何使用快速排序对整数序列进行递增排序,并记录每次划分的过程:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0] # 选择第一个元素作为基准
less_than_pivot = [i for i in arr[1:] if i <= pivot]
greater_than_pivot = [i for i in arr[1:] if i > pivot]
print(f"Partitioning: {arr} -> pivot={pivot}, less={less_than_pivot}, greater={greater_than_pivot}")
# 递归地对小于和大于基准的部分进行排序
return quick_sort(less_than_pivot) + [pivot] + quick_sort(greater_than_pivot)
# 测试数据
test_data = [5, 9, 1, 4, 7, 6, 8, 2, 3]
print("Original array:")
print(test_data)
sorted_data = quick_sort(test_data)
print("Sorted array:")
print(sorted_data)
阅读全文