从头开始构造大小为N的二进制堆需要NlogN比较平均值,从而比较线性时间。
鉴于大小为N的两个二进制堆已经到位,如何在线性时间内构建包含所有2N密钥的单个二进制堆(使用线性比较数)?
答案 0 :(得分:5)
从头开始构建一个大小为N的二进制堆,需要NlogN比较平均值,从而比较线性时间。
如果您的意思是“从大小为N的数组构造大小为N的二进制堆”,那么这不一定是真的。你可以在线性时间内完成。请参阅构建堆 here。
所以对于你的问题,如果你有两个数组中的两个堆,连接数组并在结果数组上运行相同的算法将是线性的。