我想建立一个限价订单簿,其中包含买/卖订单清单。对于购买订单列表,最高购买价值应该在列表中的第一位,对于销售订单列表,最低销售价值应该在列表中的第一位。对于新订单,我想在列表中找到正确的位置。
目前我正在使用线性搜索进行插入,但它需要 O(n)时间,这对于数百万的订单而言非常高。
是否有任何数据结构可以在O(log n)或更短的时间内将节点插入到已排序的链表中?
答案 0 :(得分:0)
在O(log n)或更短的时间内将节点插入已排序的链表?
不,那是不可能的。
但是,您可以使用二进制搜索树或最小堆(如果您一次只需要最小值或最大值)来存储数据。平衡的二叉搜索树可以对您的数据进行排序,并在 O(log n)时间内进行插入/删除。