用python写个归并排序的代码
时间: 2023-12-18 08:47:07 浏览: 30
以下是 Python 实现归并排序的代码:
```python
def merge_sort(arr):
if len(arr) > 1:
mid = len(arr) // 2
left_arr = arr[:mid]
right_arr = arr[mid:]
merge_sort(left_arr)
merge_sort(right_arr)
i = j = k = 0
while i < len(left_arr) and j < len(right_arr):
if left_arr[i] < right_arr[j]:
arr[k] = left_arr[i]
i += 1
else:
arr[k] = right_arr[j]
j += 1
k += 1
while i < len(left_arr):
arr[k] = left_arr[i]
i += 1
k += 1
while j < len(right_arr):
arr[k] = right_arr[j]
j += 1
k += 1
return arr
```
可以通过以下方法来测试函数:
```python
arr = [5, 2, 8, 4, 6, 1, 3, 7]
print("原始数组:", arr)
sorted_arr = merge_sort(arr)
print("排序后数组:", sorted_arr)
```
输出:
```
原始数组: [5, 2, 8, 4, 6, 1, 3, 7]
排序后数组: [1, 2, 3, 4, 5, 6, 7, 8]
```