按快速排序原理实现排序。要求运行后控制台输入待排序数据,并显示快速排序过程中第一趟划分结果以及排序结果。
时间: 2024-10-13 18:07:32 浏览: 29
快速排序是一种常用的高效排序算法,它基于分治的思想[^1]。下面是按照快速排序的基本原理实现一个简单的版本,用于对整数数组进行排序:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2] # 选择基准元素
less = [x for x in arr if x < pivot] # 小于基准的元素
equal = [x for x in arr if x == pivot] # 等于基准的元素
greater = [x for x in arr if x > pivot] # 大于基准的元素
return quick_sort(less) + equal + quick_sort(greater)
# 示例:
data = input("请输入待排序的数据,以空格分隔:").split()
unsorted_data = [int(i) for i in data] # 转换为整数列表
sorted_data = quick_sort(unsorted_data)
print(f"原始数据:{unsorted_data}")
print(f"第一趟划分结果(分割点为第一个元素):{quick_sort([unsorted_data[0]]) + unsorted_data[1:]}")
print(f"排序后的结果:{sorted_data}")
```
当你运行此程序时,会提示你输入一组数字,然后展示快速排序的过程。注意,这里只展示了基本的快速排序,实际上优化版通常会使用随机选择基准元素来提高性能。
阅读全文