我记得,堆可用于以O(logN)时间复杂度搜索元素是否在其中。但是突然我无法获得细节。我只能找到getmin delete add等。
有人可以提示吗?
您需要搜索堆中的每个元素以确定元素是否在内部。
不过,可以进行一种优化(我们在此假设为最大堆)。如果到达的节点的值小于要搜索的元素的节点,则无需从该节点进一步搜索。但是,即使进行了这种优化,搜索仍然是O(N)(需要平均检查N / 2个节点)。