Max*_*xym 12 c++ algorithm data-structures
我正在寻找一种能够有效解决订单维护问题的数据结构.换句话说,我需要有效率
我找到了讨论这个问题的好文章:
算法非常有效(某些状态对于所有操作都是O(1)),但它们似乎并不是微不足道的,我想知道是否存在这些或类似数据结构的开源C++实现.
我已经看到了相关的主题,建议了所有操作的时间复杂度为O(log n)的一些更简单的方法,但在这里我正在寻找现有的实现.
如果在其他一些流行的语言中有一个例子,它也会很好,这样我至少可以在尝试自己实现它之前尝试它.
细节
我要去
注意
标准的订购容器(std :: set,std :: map)不是我想要的,因为它们会维护我的订单,但我需要自己订购元素.类似于我对std :: list的处理,但是位置比较是线性的,这是不可接受的.
如果您同时寻找易于实施和高效的解决方案,您可以使用平衡二叉搜索树(AVL 或红黑树)构建此结构。您可以按如下方式实施操作:
所以你可以看到这种实现的优点是所有操作的复杂度都是 O(log n) 并且很容易实现。