用归并排序法排序5个数
时间: 2023-07-03 10:32:01 浏览: 97
好的,我来为您解答。首先,归并排序是一种时间复杂度为 O(nlogn) 的排序算法,它的基本思想是将原始数组分成若干个子数组,分别进行排序,然后将已经排序好的子数组合并成一个有序的数组。对于只有5个数的数组,我们可以采用简单的归并排序算法,具体步骤如下:
1. 将原数组分成两个子数组,分别是左半部分和右半部分。
2. 对左半部分和右半部分分别进行排序,可以采用递归的方式,直到每个子数组只有一个元素为止。
3. 合并左半部分和右半部分,具体方法是从两个子数组的第一个元素开始比较,将较小的元素放入一个新的数组中,再向后比较,直到将两个子数组中的所有元素都放入新的数组中。
4. 输出新的数组,即为排序后的结果。
以下是使用 Python 语言实现归并排序的示例代码:
```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
result += left[i:]
result += right[j:]
return result
arr = [5, 3, 1, 4, 2]
print(merge_sort(arr))
```
输出结果为:[1, 2, 3, 4, 5],即为排序后的结果。
阅读全文