首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找基于位边界桶的优先级队列数据结构的名称。

查找基于位边界桶的优先级队列数据结构的名称。
EN

Stack Overflow用户
提问于 2022-08-15 15:05:36
回答 1查看 447关注 0票数 2

我在找一个数据结构的名字。我想出了这个主意,但怀疑它应该已经知道了,而且不知道该搜索什么来找到它。

此优先级队列的基础是根据最大位的位置将项放入桶中,该位位与迄今为止最大的脱队列优先级和项的优先级不同。它的优势,例如堆,是它倾向于在大的连续组中移动事件,而不是一个接一个地移动事件,从而提供更多的内存局部性。注意,这个优先级队列要求去排队的优先级必须单调增加。例如,它可以用于可能发生的事件的时间轴,但不能在所有情况下使用。

假设优先级是32位整数。然后,优先级队列有33个桶,每个桶只是一个优先项的向量,在这个向量中,桶k中的优先级与位位置k-1处最大的去队列优先级不同( "-1“表示没有差别)。

若要对项进行排队,请将其附加到桶std::bit_width(largest_dequeued_priority ^ priority_of_item)中。如果项的优先级小于largest_dequeued_priority,则抛出“非单调”异常,而不是排队。

若要排齐某项,请查找第一个非空桶。如果没有,那就失败。如果第一个空桶不是桶0,则将largest_dequeued_priority提升到该桶中的最小项优先级,并重新排队存储桶中的每个项,以便将项目重新分发到较低的桶中。现在从桶0中弹出一个项目并作为结果返回它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-15 17:11:21

这种数据结构称为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73362856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档