python中heapq.merge的时间复杂度是多少?

Jid*_*ar 5 python time-complexity heapq

我读到 heapq.merge 函数专门用于合并 2 个排序数组?时间复杂度是 O(n) 吗?如果不是,那是什么?为什么?还有它的空间复杂性是什么。

我正在解决将 2 个排序数组与 2 个指针合并的问题,并且可以实现 O(n) 时间复杂度和 O(n) 空间复杂度。

Bra*_*oni 1

heapq.merge可用于合并任意数量的已排序迭代。其时间复杂度O(NlogK)N是元素总数,而K是送入最小堆进行比较的项目。

空间复杂度是O(K)因为最小堆K在执行期间的任何给定时间点都有项目。