python 归并排序详解
归并排序(Merge Sort)是一种分治策略的排序算法,它将一个大的列表分成两个较小的子列表,对子列表进行排序,然后合并已排序的子列表以产生最终的排序列表。
以下是 Python 中实现归并排序的代码:
```python
def merge_sort(arr):
if len(arr) <= 1:
merge函数 return arr
mid = len(arr) // 2
left = merge_sort(arr[:mid])
right = merge_sort(arr[mid:])
return merge(left, right)
def merge(left, right):
merged = []
i = j = 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
(left[i])
i += 1
else:
(right[j])
j += 1
(left[i:])
(right[j:])
return merged
```
merge_sort` 函数首先检查输入的列表是否为空或只包含一个元素,如果是,则直接返回该列表。否则,它将列表分成两半,对每一半递归调用 `merge_sort` 函数进行排序,然后使用 `merge` 函数将两个已排序的子列表合并成一个已排序的列表。`merge` 函数从两个输入列表中按顺序选择元素,并将它们添加到输出列表中,直到其中一个列表被完全遍历。最后,它将剩余的元素添加到输出列表中。
以下是一个示例,演示如何使用 `merge_sort` 函数对一个列表进行排序:
```python
arr = [38, 27, 43, 3, 9, 82, 10]
sorted_arr = merge_sort(arr)
print(sorted_arr) 输出 [3, 9, 10, 27, 38, 43, 82]
```
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论