python:将待排序元素集合分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为一个有序集合。
时间: 2024-11-01 13:05:28 浏览: 6
这描述的是“归并排序”(Merge Sort)算法在Python中的应用。归并排序是一种分治法,它通过递归地将序列拆分为两半,对每半进行排序,然后将两个已排序的部分合并成一个有序的整体。以下是这个过程的一个简单示例:
```python
def merge_sort(lst):
# 如果列表长度小于或等于1,直接返回
if len(lst) <= 1:
return lst
# 将列表一分为二
mid = len(lst) // 2
left_half = lst[:mid]
right_half = lst[mid:]
# 对左右两部分递归地进行归并排序
left_half = merge_sort(left_half)
right_half = merge_sort(right_half)
# 合并两个已排序的部分
return merge(left_half, right_half)
def merge(left, right):
result = []
i, j = 0, 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.extend(left[i:])
result.extend(right[j:])
return result
# 示例
numbers = [5, 2, 8, 9, 1, 6]
sorted_numbers = merge_sort(numbers)
print(sorted_numbers)
```
阅读全文