将排序序列的集合合并成一个排序序列

Posted Jeffrey_Yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将排序序列的集合合并成一个排序序列相关的知识,希望对你有一定的参考价值。

您有一个排序序列的集合,并且想要遍历所有合并在一起的排序序列。
先看如下示例,了解实际需求:

>>> import heapq
>>> a = [1, 4, 7, 10]
>>> b = [2, 5, 6, 11]
>>> for c in heapq.merge(a, b):
        print(c)

...
1
2
4
5
6
7
10
11

值得注意的是,heapq.merge要求所有的输入序列已排序。特别是,它不会首先将所有数据读入堆中或进行任何初步排序。 它也不对输入进行任何形式的验证,以检查输入是否满足排序要求。 取而代之的是,它仅从每个输入序列的开头检查项目集,找到的最小项。 然后读取所选序列中的新项目,然后重复该过程,直到所有输入序列都被完全消耗为止。
类似于sorted(itertools.chain(* iterables)),但返回一个iterable,不会一次将数据全部拉入内存,并假定每个输入流都已排序(最小到最大)。

以上是关于将排序序列的集合合并成一个排序序列的主要内容,如果未能解决你的问题,请参考以下文章

递归与分治-合并排序快速排序以及循环赛问题

归并排序

数据结构与算法之排序算法:归并排序

归并排序

/*归并排序

归并排序--详细解释版