如何按日期顺序创建事件队列

我正在尝试创建事件队列,并且希望能够在恒定时间内从队列中间插入和删除事件,

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

从现在开始该数字可以是毫秒,或者不是。

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

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

zqstella 回答:如何按日期顺序创建事件队列

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

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

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

本文链接:https://www.f2er.com/3169123.html

大家都在问