这是一个有点作业的问题,有些不是。在我的作业中,我必须演示如何合并两个相同大小的堆并估计它的时间复杂度。当我在寻找这个时,我读到了关于倾斜堆和斐波纳契堆的信息。
我的问题是,你能把两堆不同的尺寸合并到一堆吗?我在网上找到的所有例子都无法从中找到答案。
谢谢大家。
答案 0 :(得分:0)
取一个大小为M + N的数组:其中M是第一个数组的大小,N是第二个数组的大小。现在将所有元素插入到该数组中并将其固化。 时间复杂度为O((m + n)log(m + n)){因为每个hepify操作需要log(m + n),我们有m + n个元素} + insert 操作:Theta(m)+ Theta(n)+ O((m + n)log(m + n))