我是否正确地对此 max-heap 执行了 extract max 操作?
Did I correctly perform extract max operation on this max-heap?
我正在尝试了解堆的工作原理。
我有以下堆:
现在我想提取最大值。
我做的第一件事是删除根42,然后将堆(6) 中的最后一个元素放在根位置。然后我执行 max-heapify 来找到 6 的正确位置。
6 i 比它的两个 children 大,所以我把它和最大的 child 41 交换,使 41 成为新的根。
6 现在有 children 3 和 9,因此我再次将它换成更大的 child 9
最后我得到了堆
我是否正确执行了 extract-max?
是的!
Extract max 工作 recursively.find 三者中最大的元素,即父元素和它们中的两个 children.If 最大元素不是父元素 将最大元素交换到父元素并调用 extract max to largest.
我正在尝试了解堆的工作原理。
我有以下堆:
现在我想提取最大值。
我做的第一件事是删除根42,然后将堆(6) 中的最后一个元素放在根位置。然后我执行 max-heapify 来找到 6 的正确位置。
6 i 比它的两个 children 大,所以我把它和最大的 child 41 交换,使 41 成为新的根。
6 现在有 children 3 和 9,因此我再次将它换成更大的 child 9
最后我得到了堆
我是否正确执行了 extract-max?
是的! Extract max 工作 recursively.find 三者中最大的元素,即父元素和它们中的两个 children.If 最大元素不是父元素 将最大元素交换到父元素并调用 extract max to largest.