**题目描述**: 实现归并排序算法,对给定的整数数组进行排序。 **输入**: - 一个未排序的整数数组 `arr` - 数组的长度 `n` **输出**: - 按升序排列的数组
时间: 2024-04-23 14:20:34 浏览: 195
归并排序是一种经典的排序算法,它采用分治的思想来实现。具体步骤如下:
1. 将数组分成两个子数组,直到每个子数组只有一个元素。
2. 对每个子数组进行排序,可以使用递归来实现。
3. 合并两个已排序的子数组,得到一个更大的已排序数组。
4. 重复步骤3,直到所有子数组都合并为一个完整的已排序数组。
以下是归并排序算法的实现代码:
```python
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left = arr[:mid]
right = arr[mid:]
left = merge_sort(left)
right = merge_sort(right)
return merge(left, right)
def merge(left, right):
result = []
i = j = 0
while i < len(left) and j < len(right):
if left[i] < right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
while i < len(left):
result.append(left[i])
i += 1
while j < len(right):
result.append(right[j])
j += 1
return result
```
对于给定的未排序整数数组 `arr`,可以调用 `merge_sort(arr)` 函数来进行排序。最终返回的结果就是按升序排列的数组。
阅读全文