给定n个自然数,利用分治法实现归并分类。第一行为自然数n,第二行开始为n个自然数。输出n个自然数的归并分类结果。
时间: 2024-02-19 16:02:51 浏览: 73
以下是Python实现归并排序的示例代码:
```python
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left_arr = arr[:mid]
right_arr = arr[mid:]
left_arr = merge_sort(left_arr)
right_arr = merge_sort(right_arr)
return merge(left_arr, right_arr)
def merge(left_arr, right_arr):
result = []
left_index, right_index = 0, 0
while left_index < len(left_arr) and right_index < len(right_arr):
if left_arr[left_index] <= right_arr[right_index]:
result.append(left_arr[left_index])
left_index += 1
else:
result.append(right_arr[right_index])
right_index += 1
result += left_arr[left_index:]
result += right_arr[right_index:]
return result
n = int(input())
arr = []
for i in range(n):
arr.append(int(input()))
sorted_arr = merge_sort(arr)
for i in sorted_arr:
print(i, end=' ')
```
示例输入:
```
5
4 2 7 1 3
```
示例输出:
```
1 2 3 4 7
```
阅读全文