输入n个整数,用合并排序算法对n个整数进行排序后输出。代码是什么
时间: 2024-05-10 19:15:29 浏览: 13
以下是使用 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 = []
while len(left_arr) > 0 and len(right_arr) > 0:
if left_arr[0] <= right_arr[0]:
result.append(left_arr[0])
left_arr = left_arr[1:]
else:
result.append(right_arr[0])
right_arr = right_arr[1:]
if len(left_arr) > 0:
result.extend(left_arr)
if len(right_arr) > 0:
result.extend(right_arr)
return result
```
其中,`merge_sort` 函数使用递归的方式将输入的数组分成两部分,分别对左右两部分进行排序,然后再将排序好的两部分合并起来。`merge` 函数则是将两个已经排序好的数组合并成一个有序的数组。
使用示例:
```
arr = [3, 2, 1, 5, 4]
sorted_arr = merge_sort(arr)
print(sorted_arr) # 输出 [1, 2, 3, 4, 5]
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)