Data structures 限价订单簿:用于维护买卖订单列表的数据结构
我想建立一个限价订单簿,其中包含买入/卖出订单列表。对于购买订单列表,最高购买价值应位于列表的第一位,而对于销售订单列表,最低销售价值应位于列表的第一位。对于新来的订单,我想在列表中找到正确的位置 目前我正在使用线性搜索来插入,但它需要O(n)时间,这对于数百万订单来说是非常高的 是否有任何数据结构可以在O(logn)或更短时间内将节点插入排序链表? 在O(日志n)或更短的时间内将节点插入已排序的链表 不,那是不可能的Data structures 限价订单簿:用于维护买卖订单列表的数据结构,data-structures,Data Structures,我想建立一个限价订单簿,其中包含买入/卖出订单列表。对于购买订单列表,最高购买价值应位于列表的第一位,而对于销售订单列表,最低销售价值应位于列表的第一位。对于新来的订单,我想在列表中找到正确的位置 目前我正在使用线性搜索来插入,但它需要O(n)时间,这对于数百万订单来说是非常高的 是否有任何数据结构可以在O(logn)或更短时间内将节点插入排序链表? 在O(日志n)或更短的时间内将节点插入已排序的链表 不,那是不可能的 但是,您可以使用二叉搜索树或最小堆(如果您一次只想要最小值或最大值)来存储数
但是,您可以使用二叉搜索树或最小堆(如果您一次只想要最小值或最大值)来存储数据。一个平衡的二元搜索树将使您的数据保持排序,并在O(log n)时间内进行插入/删除。合适的数据结构是A。因为您只关心在顶部维护一个值(最小值或最大值),所以使用最大堆和最小堆。使用堆将增加动态数组的摊余成本。