限价订单:维护买/卖订单清单的数据结构

时间:2016-09-15 05:08:05

标签: data-structures

我想建立一个限价订单簿,其中包含买/卖订单清单。对于购买订单列表,最高购买价值应该在列表中的第一位,对于销售订单列表,最低销售价值应该在列表中的第一位。对于新订单,我想在列表中找到正确的位置。

目前我正在使用线性搜索进行插入,但它需要 O(n)时间,这对于数百万的订单而言非常高。

是否有任何数据结构可以在O(log n)或更短的时间内将节点插入到已排序的链表中?

1 个答案:

答案 0 :(得分:0)

  

在O(log n)或更短的时间内将节点插入已排序的链表?

不,那是不可能的。

但是,您可以使用二进制搜索树最小堆(如果您一次只需要最小值或最大值)来存储数据。平衡的二叉搜索树可以对您的数据进行排序,并在 O(log n)时间内进行插入/删除。