输入一个数组的长度len,定义一个整型数组arr[len],通过键盘给数组填充数据,分别用归并排序法和快速排序对数组进行排序。要求写一个输出函数,用于输出排序前和排序后数组的值以做对比
时间: 2024-10-13 08:11:08 浏览: 33
首先,我们需要完成以下几个步骤:
1. **输入和初始化数组**:
创建一个长度为`len`的整数数组,并通过循环从用户那里获取输入,将每个元素存储在数组中。
```python
def input_array(len):
arr = [0] * len
for i in range(len):
arr[i] = int(input(f"请输入第{i+1}个元素: "))
return arr
```
2. **定义归并排序和快速排序函数**:
- 归并排序(Merge Sort):
```python
def merge_sort(arr):
# ... 实现归并排序算法 ...
pass
```
- 快速排序(Quick Sort):
```python
def quick_sort(arr):
# ... 实现快速排序算法 ...
pass
```
3. **输出函数**:
- 为了比较排序前后的结果,我们可以先输出原始数组,然后对数组进行排序,再输出排序后的数组。
```python
def print_arrays(original, sorted_arr):
print("原始数组:", original)
print("排序后数组:", sorted_arr)
```
4. **主程序**:
将输入数组传递给排序函数,然后输出结果。
```python
def main():
len = int(input("请输入数组长度: "))
arr = input_array(len)
# 先排序
arr_sorted_by_merge = merge_sort(arr.copy()) # 使用深拷贝防止原数组被改变
arr_sorted_by_quick = quick_sort(arr.copy())
print_arrays(arr, arr_sorted_by_merge)
print_arrays(arr, arr_sorted_by_quick)
if __name__ == "__main__":
main()
```
阅读全文