原文地址 分类目录——数据结构笔记 先把整个序列对半拆分,然后对子序列在进行对半拆分,直直拆成每个子序列只有一个元素, 然后再按拆分顺序一层一层反向合并,在拆分过程中原来在一个子序列的,合并后还在子序列,合并时需要保证按序合并 最底层的合并好说,两个值,比较大小,小值在前 再往上,需要为合并的两个子序列配置两个指针(姑且称之为left和right),初始分别指向序列的起始位置,较两个指针指向值,取较小值加入合并序列,较小值指针后移,再比较、加入较小值、较小值指针后移......直到合并完成 一层层的向上合并,直到将整个序列归并结束 实现 def mergesort(alist): n = l