我正在尝试创建一个事件队列,我希望能够在恒定时间内从队列中间插入和删除,类似于以下内容:
3446---9493---15969---48381
从现在起,这个数字可能是毫,或者其他什么。
如何在9493和15969事件之间插入事件?
我可以使用二进制搜索来查找队列中具有所需时间的事件,但有更简单的方法吗?
您要查找的是一个优先级队列:
https://en.wikipedia.org/wiki/Priority_queue
实现一个的典型方法是使用堆;获得O(log n)
插入时间和O(log n)
删除时间(用于从队列中删除优先级最高的项目(。查看维基百科页面上的其他潜在数据结构列表,其中一些数据结构的摊销时间更长。