【问题标题】:How to create queue of events in order by date如何按日期顺序创建事件队列
【发布时间】:2020-02-29 09:36:00
【问题描述】:

我正在尝试创建一个事件队列,我希望能够在恒定时间内从队列中间插入和删除,如下所示:

3446 --- 9493 --- 15969 --- 48381

从现在开始,这个数字可能是毫秒,或者诸如此类。

如何在 9493 和 15969 事件之间插入事件?

我可以使用二进制搜索来查找队列中具有所需时间的事件,但是有没有更简单的方法?

【问题讨论】:

    标签: linked-list queue eventqueue discrete-space


    【解决方案1】:

    您要查找的内容称为优先级队列:

    https://en.wikipedia.org/wiki/Priority_queue

    典型的实现方式是使用堆;你会得到O(log n) 插入时间和O(log n) 删除时间(用于从队列中删除最高优先级的项目)。查看 Wikipedia 页面以获取其他潜在数据结构的列表,其中一些具有更好的摊销时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      相关资源
      最近更新 更多