gpt4 book ai didi

c++ - 增加优先级队列中的优先级

转载 作者:搜寻专家 更新时间:2023-10-31 01:02:47 25 4
gpt4 key购买 nike

我想降低优先级队列中元素的优先级?我如何在对数时间内实现这一点?

我知道优先级队列是作为最大堆实现的。但是,如果我修改队列中的任何元素,然后对其调用 make_heap,它将花费元素数量的线性时间。

引用:http://www.cplusplus.com/reference/queue/priority_queue/

最佳答案

执行对数复杂度更新的唯一方法是自己实现优先级队列,所以你可以使用well-known algorithms .

std::priority_queue 的实现不是由标准指定的(例如它很可能是 d-ary heap ),因此您不能在不重建队列的情况下可移植地更新优先级。出于同样的原因,您不能使用 std::make_heap 和相关函数。

关于c++ - 增加优先级队列中的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26525409/

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