平衡二叉树
把[0,1000000)作为一级区间,再把一级区间分为两个二级区间[0,500000)和[500000,1000000),然后再把二级区间二分为4个三级区间,以此类推。最后会得到1000000个21级区间[0,1),[1,2)...[999999,1000000)。这实际上是把区间组织成一个平衡二叉树,左子节点代表低分区间,右子节点代表高分区间,其中非叶子节点的 count 值总是等于其左右子节点的 count 值之和。以后,每次用户积分有变化所需要更新的区间数量和积分变化量有关系,积分变化越小 更新的区间层次越低。总体上每次所需要更新的区间数量是用户积分变量的log(n)级别。