需要有关自定义数据结构的建议与使用内存数据库的建议?

时间:2011-01-26 09:20:35

标签: python data-structures

我在Python 2.6+中编写类似程序的网络调度,其中我有一个复杂的队列要求:队列应该存储数据包,应该通过时间戳或O(1)中的数据包ID检索,应该能够检索低于某个阈值的所有数据包,按优先级等对数据包进行排序。它也应该以合理的复杂度插入和删除。

现在我有两个选择:

  1. 合并一些数据结构并正确同步以满足我的要求。
  2. 使用一些内存数据库,以便我可以轻松执行各种操作。
  3. 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

数据库只是一些索引和奇特的算法,它们围绕着一个数据结构 - 一个表。你对控制范围内发生的事情没有很多控制。

我尝试使用内置的Python数据结构。

答案 1 :(得分:0)

Fibonacci Heap可能是有益的,因为(引用文章):

  

以恒定的摊销时间执行插入,查找最小值,减少键和合并(联合)工作。操作删除并删除O(log n)摊销时间中的最小工作。这意味着从空数据结构开始,来自第一组的任何操作序列和来自第二组的b操作都将花费O(a + b log n)时间。在二项式堆中,这样的操作序列将花费O((a + b)log(n))时间。当b渐近地小于a时,Fibonacci堆比二项式堆更好。