gpt4 book ai didi

algorithm - 在堆中删除,为什么这个实现会切换最后一个元素的值,而不是仅仅替换它?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:07 26 4
gpt4 key购买 nike

(USC CSCI 303 作业 4)第 7 题(6.5-7):

The operation Heap-Delete(A, i) deletes the item in node i from heap A. Give an implementation of Heap-Delete that runs in O(lg n) time for an n-element max-heap.

这是引用解决方案的伪代码和描述:

Heap-Delete(A, i)
A[i] ↔ A[length(A)]
length(A) ← length(A) - 1
Heapify(A, i)

The algorithm deletes the element at node i, and replaces it with the last element. Then the algorithm runs Heapify from the node i.

如果将“↔”改为“←”不是更好吗? 这真的有必要吗?

我从 http://www-scf.usc.edu/~csci303/cs303hw4solutions.pdf (第4页)

最佳答案

其实没有必要。可能的目的是返回该元素,在这种情况下,您需要将其存储在某处,然后再被覆盖。

关于algorithm - 在堆中删除,为什么这个实现会切换最后一个元素的值,而不是仅仅替换它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com