使用合并排序算法对输入的n个整数,按照从小到大的顺序排序
时间: 2024-05-10 13:21:24 浏览: 165
以下是使用Python实现的合并排序算法,可以对输入的n个整数按照从小到大的顺序进行排序:
```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 = []
i = 0
j = 0
while i < len(left_arr) and j < len(right_arr):
if left_arr[i] < right_arr[j]:
result.append(left_arr[i])
i += 1
else:
result.append(right_arr[j])
j += 1
result += left_arr[i:]
result += right_arr[j:]
return result
if __name__ == '__main__':
arr = [4, 2, 1, 6, 8, 5, 3, 7]
print(merge_sort(arr))
```
输出结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8]
```
在这个例子中,我们使用了递归来分割输入的数组,直到每个子数组的长度小于等于1。然后,我们使用合并函数将子数组合并为一个有序数组。最后,我们将所有子数组合并为一个有序数组。由于合并排序算法的时间复杂度为O(n log n),因此它是一种高效的排序算法。
阅读全文