Python中的订单统计红黑二叉树

时间:2014-10-28 01:58:38

标签: python algorithm binary-tree binary-search-tree red-black-tree

是否有用于实现订单统计信息Red Black Binary tree的python库?到目前为止我还没有找到任何东西。

我想解决的问题:

给定序列:1,2,3,4,1,4,2,3:标签 - > 1,2,3,4-

首次出现标签i为L_i,第二次出现标签i为U_i

我想计算j的数量,使得索引(L_i)< index(L_j)但索引(U_i)<所有i的索引(U_j)

Input : 1,2,3,4,1,4,2,3 
Output :  4 

因为| j | = 3因为索引(L_1)< index(L_ {2,3,4})和index(U_1)

这可以在theta(n^2)中通过数组中的线性搜索为每个点完成,但使用平衡顺序统计RBTree可以帮助在theta(n*log(n))中完成此操作。

这是我的想法:

for each label in sequence:
 count= count + search(label)

搜索时,如果找不到标签,请插入并返回0:O(logn)

搜索时,如果找到标签,则删除它并计算大于该数量的节点数并返回该数字

0 个答案:

没有答案