如何按日期顺序创建事件队列
How to create queue of events in order by date
我正在尝试创建一个事件队列,我希望能够在恒定时间内从队列中间插入和删除,如下所示:
3446 --- 9493 --- 15969 --- 48381
从现在开始数字可能是毫秒,或者诸如此类的东西。
如何在 9493 和 15969 事件之间插入一个事件?
我可以使用二进制搜索来查找队列中具有所需时间的事件,但是有更简单的方法吗?
您要查找的称为优先队列:
https://en.wikipedia.org/wiki/Priority_queue
典型的实现方式是使用堆;你得到 O(log n)
插入时间和 O(log n)
删除时间(用于从队列中删除最高优先级的项目)。查看维基百科页面以获取其他潜在数据结构的列表,其中一些具有更好的摊销时间。
我正在尝试创建一个事件队列,我希望能够在恒定时间内从队列中间插入和删除,如下所示:
3446 --- 9493 --- 15969 --- 48381
从现在开始数字可能是毫秒,或者诸如此类的东西。
如何在 9493 和 15969 事件之间插入一个事件?
我可以使用二进制搜索来查找队列中具有所需时间的事件,但是有更简单的方法吗?
您要查找的称为优先队列:
https://en.wikipedia.org/wiki/Priority_queue
典型的实现方式是使用堆;你得到 O(log n)
插入时间和 O(log n)
删除时间(用于从队列中删除最高优先级的项目)。查看维基百科页面以获取其他潜在数据结构的列表,其中一些具有更好的摊销时间。