我在Python 2.6+中编写类似程序的网络调度,其中我有一个复杂的队列要求:队列应该存储数据包,应该通过时间戳或O(1)中的数据包ID检索,应该能够检索低于某个阈值的所有数据包,按优先级等对数据包进行排序。它也应该以合理的复杂度插入和删除。
现在我有两个选择:
有什么建议吗?
答案 0 :(得分:0)
数据库只是一些索引和奇特的算法,它们围绕着一个数据结构 - 一个表。你对控制范围内发生的事情没有很多控制。
我尝试使用内置的Python数据结构。
答案 1 :(得分:0)
Fibonacci Heap可能是有益的,因为(引用文章):
以恒定的摊销时间执行插入,查找最小值,减少键和合并(联合)工作。操作删除并删除O(log n)摊销时间中的最小工作。这意味着从空数据结构开始,来自第一组的任何操作序列和来自第二组的b操作都将花费O(a + b log n)时间。在二项式堆中,这样的操作序列将花费O((a + b)log(n))时间。当b渐近地小于a时,Fibonacci堆比二项式堆更好。