Python 的归并排序使用递归合并函数将有序的子列表合并为一个有序的列表。该函数使用索引逐一比较子列表中的元素,并将较小的元素添加到合并后的列表中,直到两个子列表都遍历完,最终返回合并后的有序列表。
Python 归并排序中的递归合并
Python 归并排序是一种分治排序算法,它将一个列表拆分成更小的子列表,对子列表进行排序,然后将有序的子列表合并成一个有序的列表。递归合并是归并排序的关键步骤,它将两个有序的子列表合并为一个有序的列表。
递归合并函数
Python中的递归合并函数通常如下所示:
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
下载
立即学习
“
Python免费学习笔记(深入)
”;
工作原理
函数接收两个有序的子列表
和
作为参数。
它初始化一个空列表
来存储合并后的列表。
函数使用两个索引变量
和
来遍历子列表。
在循环中,它比较子列表中的当前元素,将较小的元素添加到
中并相应地递增索引。
当一个子列表遍历完后,它将剩余的元素附加到
中。
最终,函数返回合并后的有序列表
。
def merge(left_list, right_list):
"""合并两个有序列表。
参数:
left_list:有序的左子列表。
right_list:有序的右子列表。
返回:
一个有序的包含两个子列表元素的列表。
"""
merged_list = [] # 初始化一个空列表来存储合并后的列表
left_index = 0 # 左子列表的索引
right_index = 0 # 右子列表的索引
while left_index < len(left_list) and right_index < len(right_list):
if left_list[left_index] <= right_list[right_index]:
merged_list.append(left_list[left_index])
left_index += 1
else:
merged_list.append(right_list[right_index])
right_index += 1
# 追加剩余元素
merged_list.extend(left_list[left_index:])
merged_list.extend(right_list[right_index:])
return merged_listleft_listright_listmerged_listleft_indexright_indexmerged_listmerged_listmerged_list