从线性时间大小为N的两个二进制堆构造一个大小为2N的二进制堆?

Nov*_*Nov 0 java algorithm binary-heap

从头开始构造大小为N的二进制堆需要NlogN比较平均值,从而比较线性时间.

鉴于大小为N的两个二进制堆已经到位,如何在线性时间内构建包含所有2N密钥的单个二进制堆(使用线性比较数)?

IVl*_*lad 5

从头开始构造大小为N的二进制堆需要NlogN比较平均值,从而比较线性时间.

如果您的意思是"从大小为N的数组构造大小为N的二进制堆",那么这不一定是真的.你可以在线性时间内完成.请参阅在此处构建堆 .

因此,对于您的问题,如果您有两个数组中的两个堆,连接数组并在结果数组上运行相同的算法将是线性的.