我有一个排序数组,我在其中使用二进制搜索(std::upper_bound)O(logn)及时找到小于特定值的项目数. 现在我想在保持排序的同时插入和删除此数组.我希望整体的复杂性O(logn).
std::upper_bound
O(logn)
我知道,使用二叉搜索树或者std::multiset我可以做的插入,删除和UPPER_BOUND的O(logn),但我不能够做得到的距离/指数(std::distance是O(n)用于集)在对数时间.
std::multiset
std::distance
O(n)
那么有没有办法实现我想做的事情?
c++ algorithm data-structures
algorithm ×1
c++ ×1
data-structures ×1