首先,我们回顾二叉堆的作用,它的目的是实现查找最小值和插入的对数时间复杂度。但是如果要合并两个二叉堆,那么我们必须要将一个数组中的元素复制到另一个数组中去,然后再进行二叉堆的重构,这种操作的时间复杂度是 O(N) ,其中 N 表示二叉堆的节点的数量。是否存在以对数时间实现合并两个堆的操作呢?同时它也保证了实现查找最小值和插入的对数时间复杂度。
优先队列基础知识(三)---左式堆
最新推荐文章于 2021-05-29 14:37:10 发布
首先,我们回顾二叉堆的作用,它的目的是实现查找最小值和插入的对数时间复杂度。但是如果要合并两个二叉堆,那么我们必须要将一个数组中的元素复制到另一个数组中去,然后再进行二叉堆的重构,这种操作的时间复杂度是 O(N) ,其中 N 表示二叉堆的节点的数量。是否存在以对数时间实现合并两个堆的操作呢?同时它也保证了实现查找最小值和插入的对数时间复杂度。