标签: algorithm recursion merge heap top-down
但是,我甚至不知道这个问题意味着什么。
这只需要O(n)的最小时间来合并两个排序的数组,我不知道如何在O(k)时间内合并。
这是与之相关的三个问题:
此问题的目的是探索以自上而下的方式有效构建标准堆的可能性。 给出一个算法的高级描述,该算法合并两个标准堆,每个堆包含n = 2 ^ k个元素。该算法应在O(k)时间内运行。 使用第1部分中指定的子例程,给出一个递归或迭代算法,构建一个包含2 ^ n个元素的堆。 记下第2部分中指定的算法运行时间的等式,求解。 醇>
此问题的目的是探索以自上而下的方式有效构建标准堆的可能性。
给出一个算法的高级描述,该算法合并两个标准堆,每个堆包含n = 2 ^ k个元素。该算法应在O(k)时间内运行。
使用第1部分中指定的子例程,给出一个递归或迭代算法,构建一个包含2 ^ n个元素的堆。
记下第2部分中指定的算法运行时间的等式,求解。
答案 0 :(得分:0)
您可以使用Binomial_heap或 Leftist heaps。
当n = 2 ^ k时,它们都在O(k)时间内进行合并操作。