按快速排序原理实现排序。要求运行后控制台输入待排序数据,并显示快速排序过程中第一趟划分结果以及排序结果。请用python代码输出
时间: 2024-10-13 17:08:26 浏览: 34
可以按照快速排序算法的基本步骤来实现。这里是一个简单的Python版本,它会接收用户输入的数据,执行一次划分并展示结果:
```python
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2] # 选择中间元素作为基准
less = [i for i in arr if i < pivot] # 小于基准的元素
equal = [i for i in arr if i == pivot] # 等于基准的元素
greater = [i for i in arr if i > pivot] # 大于基准的元素
return quicksort(less) + equal + quicksort(greater)
# 接收用户输入
unsorted_data = input("请输入待排序的数字,用逗号分隔:")
data = [int(i) for i in unsorted_data.split(",")]
# 打印原始数组
print("原始数组:", data)
# 第一趟划分(只做一次划分)
first_partition = quicksort(data[:1])
pivot_index = len(first_partition)
print(f"第一趟划分后的数组(第一个元素为基准):{data[:pivot_index]}, {data[pivot_index]}")
# 完全排序并打印结果
sorted_data = quicksort(data)
print("排序后的数组:", sorted_data)
阅读全文