线段树相关概念证明

一、线段树是平衡二叉树

引理1:根结点区间长度相差1的两棵线段树的高度相差小于等于1

证明:使用数学归纳法
h ( x ) h(x) h(x)表示根结点区间长度为x的线段树的高度,即证明:
对任正整数x,都有 h ( x + 1 ) − h ( x ) ≤ 1 h(x+1)-h(x) \leq 1 h(x+1)h(x)1

  1. 易知 h ( 1 ) = 1 , h ( 2 ) = 2 , h ( 3 ) = 2 h(1)=1,h(2)=2,h(3)=2 h(1)=1h(2)=2h(3)=2
  2. 考虑 k ≥ 3 k\geq3 k3时的情况。已知当 x < k x < k x<k时, h ( x + 1 ) − h ( x ) ≤ 1 h(x+1)-h(x) \leq 1 h(x+1)h(x)1,证明当 x = k x=k x=k时,满足 h ( k + 1 ) − h ( k ) ≤ 1 h(k+1)-h(k)\leq 1 h(k+1)h(k)1
    根结点区间长度为k,左孩子区间长度 x l = ⌈ k 2 ⌉ xl =\lceil \frac{k}{2} \rceil xl=2k, 右孩子区间长度 x r = ⌊ k 2 ⌋ xr = \lfloor \frac{k}{2} \rfloor xr=2k,一定有 x l ≥ x r xl \geq xr xlxr,因此左子树的高度 h ( x l ) h(xl) h(xl)大于等于右子树的高度 h ( x r ) h(xr) h(xr),整棵树的高度为两棵子树中更高的子树高度加1,即 h ( k ) = h ( ⌈ k 2 ⌉ ) + 1 h(k)=h(\lceil \frac{k}{2} \rceil)+1 h(k)=h(⌈2k⌉)+1
    已知当 k ≥ 3 k\geq3 k3时,一定有 k 2 < k \frac{k}{2} < k 2k<k
    • 如果k为偶数,k+1为奇数,
      h ( k + 1 ) = h ( ⌈ k + 1 2 ⌉ ) + 1 h(k+1)=h(\lceil \frac{k+1}{2} \rceil)+1 h(k+1)=h(⌈2k+1⌉)+1= h ( k 2 + 1 ) + 1 h(\frac{k}{2}+1)+1 h(2k+1)+1
      h ( k ) = h ( k 2 ) + 1 h(k)=h(\frac{k}{2})+1 h(k)=h(2k)+1
      h ( k + 1 ) − h ( k ) = h ( k 2 + 1 ) − h ( k 2 ) h(k+1)-h(k)=h(\frac{k}{2}+1)-h(\frac{k}{2}) h(k+1)h(k)=h(2k+1)h(2k)
      已知当 x < k x < k x<k时, h ( x + 1 ) − h ( x ) ≤ 1 h(x+1)-h(x) \leq 1 h(x+1)h(x)1,而当k为正偶数时一定有 k 2 < k \frac{k}{2} < k 2k<k
      所以有: h ( k + 1 ) − h ( k ) = h ( k 2 + 1 ) − h ( k 2 ) ≤ 1 h(k+1)-h(k)=h(\frac{k}{2}+1)-h(\frac{k}{2})\leq 1 h(k+1)h(k)=h(2k+1)h(2k)1
    • 如果k为奇数,k+1为偶数,
      h ( k + 1 ) = h ( ⌈ k + 1 2 ⌉ ) + 1 h(k+1)=h(\lceil \frac{k+1}{2} \rceil)+1 h(k+1)=h(⌈2k+1⌉)+1= h ( k + 1 2 + 1 ) + 1 h(\frac{k+1}{2}+1)+1 h(2k+1+1)+1
      h ( k ) = h ( ⌈ k 2 ⌉ ) + 1 = h ( k + 1 2 ) + 1 h(k)=h(\lceil\frac{k}{2}\rceil)+1 = h(\frac{k+1}{2})+1 h(k)=h(⌈2k⌉)+1=h(2k+1)+1
      h ( k + 1 ) − h ( k ) = h ( k + 1 2 + 1 ) − h ( k + 1 2 ) h(k+1)-h(k)=h(\frac{k+1}{2}+1)-h(\frac{k+1}{2}) h(k+1)h(k)=h(2k+1+1)h(2k+1)
      已知当 x < k x < k x<k时, h ( x + 1 ) − h ( x ) ≤ 1 h(x+1)-h(x) \leq 1 h(x+1)h(x)1,而当k>1且为正奇数时一定有 k + 1 2 < k \frac{k+1}{2} < k 2k+1<k
      所以有: h ( k + 1 ) − h ( k ) = h ( k + 1 2 + 1 ) − h ( k + 1 2 ) ≤ 1 h(k+1)-h(k)=h(\frac{k+1}{2}+1)-h(\frac{k+1}{2}) \leq 1 h(k+1)h(k)=h(2k+1+1)h(2k+1)1
      综上:根结点区间长度相差1的两棵线段树的高度相差小于等于1
证明:线段树是平衡二叉树

对于线段树中任何分支结点

  • 如果该结点表示的区间长度为偶数,则其左右孩子表示的区间长度相等,其左右子树的高度相等。
  • 如果该结点表示的区间长度为奇数,则其左孩子表示的区间长度比右孩子表示的区间长度大1,根据引理1,其左右子树的高度相差不大于1。

线段树中任何分支结点的左右子树高度相差不大于1,线段树是平衡二叉树。

二、区间长度为n的线段树的高度为 ⌈ l o g 2 n ⌉ + 1 \lceil log_2{n}\rceil+1 log2n+1

证明:区间长度为n的线段树的高度为 ⌈ l o g 2 n ⌉ + 1 \lceil log_2{n}\rceil+1 log2n+1

使用数学归纳法

  1. 易知当n为1时线段树高度为1、n为2时线段树高度为2,该式成立。
  2. 已知 k ≥ 3 k\geq3 k3,当n<k时区间长度为n的线段树的高度为 ⌈ l o g 2 n ⌉ + 1 \lceil log_2{n}\rceil+1 log2n+1,当区间长度n=k时
    • 如果k为偶数,该结点的两个孩子表示的区间长度为 k 2 \frac{k}{2} 2k,已知当 k ≥ 3 k\ge3 k3时满足 k 2 < k \frac{k}{2}<k 2k<k,所以子树的高度为 ⌈ l o g 2 k 2 ⌉ + 1 = ⌈ l o g 2 k − 1 ⌉ + 1 = ⌈ l o g 2 k ⌉ \lceil log_2{\frac{k}{2}}\rceil+1 = \lceil log_2{k}-1\rceil+1=\lceil log_2{k}\rceil log22k+1=log2k1+1=log2k。根结点区间长度为n的线段树的高度为子树高度最大值加1,即 ⌈ l o g 2 k ⌉ + 1 \lceil log_2{k}\rceil+1 log2k+1
    • 如果k为奇数,该结点左孩子表示的区间长度为 k + 1 2 \frac{k+1}{2} 2k+1,左孩子区间长度大于等于右孩子区间,因此左子树高度大于等于右子树高度,整棵树的高度为左子树高度+1。
      已知当 k ≥ 3 k\ge3 k3时满足 k + 1 2 < k \frac{k+1}{2}<k 2k+1<k,所以子树高度为 ⌈ l o g 2 k + 1 2 ⌉ + 1 = ⌈ l o g 2 ( k + 1 ) − 1 ⌉ + 1 = ⌈ l o g 2 ( k + 1 ) ⌉ \lceil log_2{\frac{k+1}{2}}\rceil+1 = \lceil log_2{(k+1)}-1\rceil+1=\lceil log_2{(k+1)}\rceil log22k+1+1=log2(k+1)1+1=log2(k+1)
      因为 k ≥ 3 k\geq3 k3,且是奇数,一定存在x满足: 2 x − 1 < k < k + 1 ≤ 2 x 2^{x-1}<k<k+1\le 2^x 2x1<k<k+12x
      因此 x − 1 < l o g 2 k < l o g 2 ( k + 1 ) ≤ x x-1<log_2k<log_2(k+1)\le x x1<log2k<log2(k+1)x
      所以 ⌈ l o g 2 k ⌉ = ⌈ l o g 2 ( k + 1 ) ⌉ = x \lceil log_2k \rceil = \lceil log_2(k+1)\rceil = x log2k=log2(k+1)⌉=x
      所以左子树高度为 ⌈ l o g 2 ( k + 1 ) ⌉ = ⌈ l o g 2 k ⌉ \lceil log_2(k+1)\rceil =\lceil log_2k \rceil log2(k+1)⌉=log2k,树高度为 ⌈ l o g 2 k ⌉ + 1 \lceil log_2k \rceil+1 log2k+1

综上,区间长度为n的线段树的高度为 ⌈ l o g 2 n ⌉ + 1 \lceil log_2{n}\rceil+1 log2n+1

三、线段树去掉最下面一层的结点后,是满二叉树。

引理2:当线段树中某结点左子树高度比右子树高度大1时,右子树是满二叉树。

证明:
设该线段树根结点表示区间长度为k,左右子树高度不同时k一定是奇数,左子树区间长度 k + 1 2 \frac{k+1}{2} 2k+1,右子树区间长度 k − 1 2 \frac{k-1}{2} 2k1,高度差 ⌈ l o g 2 k + 1 2 ⌉ + 1 − ⌈ l o g 2 k − 1 2 ⌉ − 1 = ⌈ l o g 2 ( k + 1 ) ⌉ − ⌈ l o g 2 ( k − 1 ) ⌉ = 1 \lceil log_2{\frac{k+1}{2}} \rceil+1-\lceil log_2{\frac{k-1}{2}} \rceil-1=\lceil log_2(k+1)\rceil-\lceil log_2(k-1)\rceil=1 log22k+1+1log22k11=log2(k+1)⌉log2(k1)⌉=1
记: x = ⌈ l o g 2 ( k − 1 ) ⌉ x=\lceil log_2(k-1)\rceil x=log2(k1)⌉,则 x + 1 = ⌈ l o g 2 ( k + 1 ) ⌉ x+1=\lceil log_2(k+1)\rceil x+1=log2(k+1)⌉
因此有 x − 1 < l o g 2 ( k − 1 ) ≤ x < l o g 2 ( k + 1 ) ≤ x + 1 x-1 < log_2(k-1) \le x < log_2(k+1) \le x+1 x1<log2(k1)x<log2(k+1)x+1
2 x − 1 < k − 1 ≤ 2 x < k + 1 ≤ 2 x + 1 2^{x-1}<k-1\le 2^x < k+1 \le 2^{x+1} 2x1<k12x<k+12x+1
由于k是奇数,如果 k < 2 x k<2^x k<2x,则 k + 1 ≤ 2 x k+1\le 2^x k+12x,这与上述情况相悖。
由于k是奇数,不能是2的幂,所以 k ≠ 2 x k \neq 2^x k=2x
所以一定有 k > 2 x k>2^x k>2x,同时 k − 1 ≤ 2 x k-1\le 2^x k12x,此时只能是 k − 1 = 2 x k-1=2^x k1=2x
右子树区间长度 k − 1 2 = 2 x − 1 \frac{k-1}{2}=2^{x-1} 2k1=2x1,是2的幂。
区间长度为2的幂的线段树一定是满二叉树,因此右子树是满二叉树。

证明:线段树去掉最下面一层的结点后,是满二叉树。

使用数学归纳法证明

  • 易知,当根结点区间长度为1、2时,满足该定理。
  • 已知k>=3,假设当根结点区间长度小于k时,线段树去掉最下面一层的结点后,是满二叉树。
    当根结点区间长度等于k时,整棵树高度为h,其左右子树表示的区间长度小于k。
    • 如果k是偶数,其左右子树区间长度相同,左右子树结构相同。左右子树区间长度小于k,分别去掉最下面一层结点后,左右子树都是满二叉树,加上表示区间长度为k的根结点后,仍然是满二叉树。
    • 如果k是奇数,其左子树区间长度为 ⌈ k 2 ⌉ \lceil \frac{k}{2} \rceil 2k, 右子树区间长度为 ⌊ k 2 ⌋ \lfloor\frac{k}{2}\rfloor 2k,左右子树区间长度都小于k。
      如果两子树高度相同,去掉最下面一层结点后,左右子树都是满二叉树,加上表示区间长度为k的根结点后,仍然是满二叉树。
      如果两子树高度不同,根据线段树是平衡二叉树,以及左孩子表示的区间长度 ⌈ k 2 ⌉ \lceil \frac{k}{2} \rceil 2k大于等于右孩子表示的区间长度 ⌊ k 2 ⌋ \lfloor\frac{k}{2}\rfloor 2k,只能是左子树高度比右子树高度大1。左子树高度小于k,去掉最下面一层后是满二叉树。根据引理2,右子树是满二叉树。加上表示区间长度为k的根结点后,仍然是满二叉树。

四、用顺序存储结构保存区间长为n的线段树,需要位置数最多为4n-1。

该线段树数的高度为 h = ⌈ l o g 2 n ⌉ + 1 h=\lceil log_2{n}\rceil+1 h=log2n+1,线段树结点最多时为高度为 h h h的满二叉树,顺序存储结构需要的空间为高度为 h h h的满二叉树的结点数。
高为h的满二叉树的结点数为 2 h − 1 = 2 ⌈ l o g 2 n ⌉ + 1 − 1 2^h-1=2^{\lceil log_2{n}\rceil+1}-1 2h1=2log2n+11
x = ⌈ l o g 2 n ⌉ x=\lceil log_2{n}\rceil x=log2n,则 x − 1 < l o g 2 n ≤ x x-1<log_2n\le x x1<log2nx
左侧1移到右边,有 x < l o g 2 n + 1 x < log_2n+1 x<log2n+1,即 ⌈ l o g 2 n ⌉ < l o g 2 n + 1 \lceil log_2{n}\rceil<log_2n+1 log2n<log2n+1
所以高为h的满二叉树的结点数为 2 ⌈ l o g 2 n ⌉ + 1 − 1 < 2 l o g 2 n + 1 + 1 − 1 = 2 l o g 2 n + 2 − 1 = 4 ∗ 2 l o g 2 n − 1 = 4 n − 1 2^{\lceil log_2{n}\rceil+1}-1<2^{log_2n+1+1}-1=2^{log_2n+2}-1=4*2^{log_2n}-1=4n-1 2log2n+11<2log2n+1+11=2log2n+21=42log2n1=4n1
因此若已知 n ≤ N n\le N nN,表示线段树的数组长度一般设为4N。

五、区间长度为n的线段树中结点数量为2n-1

引理3:二叉树度为0的结点数为 n 0 n_0 n0,度为2的结点数为 n 2 n_2 n2,满足 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1

证明:二叉树度为0的结点数为 n 0 n_0 n0,度为1的结点数为 n 1 n_1 n1,度为2的结点数为 n 2 n_2 n2,总结点数为 n 0 + n 1 + n 2 n_0+n_1+n_2 n0+n1+n2
结点也可以根据父结点的度数分类。
父结点度为0的结点不存在。
父结点度为1的结点数,为度为1的结点数的孩子数量,为 n 1 n_1 n1
父结点度为2的结点数,为度为2的结点数的孩子数量,为 2 n 2 2n_2 2n2
还有没有父结点的根结点,数量为1。总结点数为 2 n 2 + n 1 + 1 2n_2+n_1+1 2n2+n1+1
所以 n 0 + n 1 + n 2 = 2 n 2 + n 1 + 1 n_0+n_1+n_2 = 2n_2+n_1+1 n0+n1+n2=2n2+n1+1
化简得: n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1

证明:区间长度为n的线段树中结点数量为2n-1

已知,区间长度为n的线段树的叶子结点数量为n。而且线段树中没有度为1的结点。
根据引理3: n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1,得: n 2 = n 0 − 1 n_2=n_0-1 n2=n01
线段树中 n 0 = n n_0=n n0=n n 1 = 0 n_1=0 n1=0 n 2 = n 0 − 1 = n − 1 n_2=n_0-1=n-1 n2=n01=n1
总结点数 n 0 + n 1 + n 2 = 2 n − 1 n_0+n_1+n_2=2n-1 n0+n1+n2=2n1

六、区间长度为n的线段树把任意长为L的子区间划分为不超过 2 l o g 2 L 2log_2L 2log2L个由线段树中结点表示的区间。

引理4:区间长度为n的线段树把任意长为r的前缀区间划分为不超过 l o g 2 r log_2r log2r个由线段树中结点表示的区间。

解释:如果整个区间为[1, n],长为r的前缀区间为[1, r]
证明:使用数学归纳法

  1. 易知,当n为1、n为2时成立
  2. k ≥ 3 k\ge3 k3,已知当n<k时,定理成立。证明当n=k时,定理成立。
    整体区间为 [ 1 , k ] [1, k] [1,k] m = ⌊ k + 1 2 ⌋ = ⌈ k 2 ⌉ m=\lfloor \frac{k+1}{2}\rfloor=\lceil \frac{k}{2}\rceil m=2k+1=2k,左孩子区间 [ 1 , m ] [1, m] [1,m],长度为 ⌈ k 2 ⌉ \lceil \frac{k}{2}\rceil 2k,右孩子区间 [ m + 1 , k ] [m+1, k] [m+1,k],长度为 ⌊ k 2 ⌋ \lfloor \frac{k}{2} \rfloor 2k
    • 如果前缀区间 [ 1 , r ] [1, r] [1,r]的右端点 r ≤ m r\le m rm,则 [ 1 , r ] [1,r] [1,r]是左子树表示区间的前缀区间,可以完全由表示区间长度为 ⌈ k 2 ⌉ \lceil \frac{k}{2}\rceil 2k的左子树来划分区间。
      已知当n<k时,定理成立。左子树的区间长度 ⌈ k 2 ⌉ < k \lceil \frac{k}{2}\rceil < k 2k<k。所以当 [ 1 , r ] [1,r] [1,r]是左子树表示区间的前缀区间时,定理成立。
    • 如果前缀区间 [ 1 , r ] [1, r] [1,r]的右端点 r > m r> m r>m,则将该区间划分为 [ 1 , m ] , [ m + 1 , r ] [1, m], [m+1, r] [1,m],[m+1,r]
      由于 r ≤ k r\le k rk,所以 r 2 ≤ k 2 ≤ ⌈ k 2 ⌉ \frac{r}{2} \le \frac{k}{2} \le \lceil \frac{k}{2} \rceil 2r2k2k
      − r 2 ≥ − ⌈ k 2 ⌉ -\frac{r}{2} \ge -\lceil \frac{k}{2} \rceil 2r2k
      r − r 2 = r 2 ≥ r − ⌈ k 2 ⌉ r-\frac{r}{2}=\frac{r}{2} \ge r-\lceil \frac{k}{2} \rceil r2r=2rr2k
      [ m + 1 , r ] [m+1,r] [m+1,r]区间长度为 r − ⌈ k 2 ⌉ r-\lceil \frac{k}{2} \rceil r2k,由表示区间为 [ m + 1 , k ] [m+1, k] [m+1,k]的右子树来划分区间,是右子树表示区间的前缀区间。
      r − ⌈ k 2 ⌉ ≤ r 2 r-\lceil \frac{k}{2} \rceil\le \frac{r}{2} r2k2r
      已知右子树区间长度 ⌊ k 2 ⌋ < k \lfloor \frac{k}{2} \rfloor<k 2k<k。满足当n<k时定理成立。
      即区间长度为 ⌊ k 2 ⌋ \lfloor \frac{k}{2} \rfloor 2k的线段树可以把长为 r − ⌈ k 2 ⌉ r-\lceil \frac{k}{2} \rceil r2k的前缀区间划分为不超过 l o g 2 ( r − ⌈ k 2 ⌉ ) log_2(r-\lceil \frac{k}{2} \rceil) log2(r2k⌉)个由线段树中结点表示的区间。
      l o g 2 ( r − ⌈ k 2 ⌉ ) ≤ l o g 2 r 2 = l o g 2 r − 1 log_2(r-\lceil \frac{k}{2} \rceil)\le log_2\frac{r}{2}=log_2r-1 log2(r2k⌉)log22r=log2r1
      因此区间 [ m + 1 , r ] [m+1, r] [m+1,r]被右子树划分成的最大区间数为 l o g 2 r − 1 log_2r-1 log2r1,加上先前划出的一个区间 [ 1 , m ] [1, m] [1,m],前缀区间 [ 1 , r ] [1, r] [1,r]被表示区间 [ 1 , k ] [1,k] [1,k]的线段树划分成的区间数不多于 l o g 2 r log_2r log2r

综上:区间长度为n的线段树把任意长为r的前缀区间划分为不超过 l o g 2 r log_2r log2r个由线段树中结点表示的区间

引理5:区间长度为n的线段树把任意长为r的后缀区间划分为不超过 l o g 2 r log_2r log2r个由线段树中结点表示的区间。

解释:如果整个区间为[1, n],长为r的后缀区间为[n-r+1, n]
证明:使用数学归纳法

  1. 易知,当n为1、n为2时成立
  2. k ≥ 3 k\ge3 k3,已知当n<k时,定理成立。证明当n=k时,定理成立。
    整体区间为 [ 1 , k ] [1, k] [1,k] m = ⌊ k + 1 2 ⌋ = ⌈ k 2 ⌉ m=\lfloor \frac{k+1}{2}\rfloor=\lceil \frac{k}{2}\rceil m=2k+1=2k,左孩子区间 [ 1 , m ] [1, m] [1,m],长度为 ⌈ k 2 ⌉ \lceil \frac{k}{2}\rceil 2k,右孩子区间 [ m + 1 , k ] [m+1, k] [m+1,k],长度为 ⌊ k 2 ⌋ \lfloor \frac{k}{2} \rfloor 2k
    考察后缀区间 [ l , k ] [l, k] [l,k],该区间长为r,即 r = k − l + 1 r=k-l+1 r=kl+1
    l = 1 l=1 l=1时,区间 [ l , k ] [l, k] [l,k]长度为k,可以由划分为1个线段树中的区间 [ 1 , k ] [1, k] [1,k],当 k ≥ 3 k\ge3 k3时一定满足 1 ≤ l o g 2 k 1\le log_2k 1log2k,是满足定理的。
    因此以下讨论中,假定 l > 1 l>1 l>1,也就是区间 [ l , k ] [l, k] [l,k]的长度 r < k r<k r<k
    • 如果后缀区间 [ l , k ] [l, k] [l,k]的左端点 l ≥ m + 1 l \ge m+1 lm+1,则 [ l , k ] [l,k] [l,k]是右子树表示区间的后缀区间,可以完全由表示区间长度为 ⌊ k 2 ⌋ \lfloor \frac{k}{2}\rfloor 2k的右子树来划分区间。
      已知当n<k时,定理成立。右子树的区间长度 ⌊ k 2 ⌋ < k \lfloor \frac{k}{2}\rfloor < k 2k<k。所以当 [ l , k ] [l,k] [l,k]是右子树表示区间的后缀区间时,定理成立。
    • 如果后缀区间 [ l , k ] [l, k] [l,k]的左端点 l ≤ m l\le m lm,则将该区间划分为 [ l , m ] , [ m + 1 , k ] [l, m], [m+1, k] [l,m],[m+1,k]
      由于区间 [ l , k ] [l,k] [l,k]的长度 r < k r < k r<k,所以 r + 1 ≤ k r+1\le k r+1k
      r + 1 2 ≤ k 2 \frac{r+1}{2} \le \frac{k}{2} 2r+12k
      r 2 ≤ ⌊ r + 1 2 ⌋ ≤ ⌊ k 2 ⌋ \frac{r}{2} \le \lfloor \frac{r+1}{2} \rfloor \le \lfloor \frac{k}{2}\rfloor 2r2r+12k
      − r 2 ≥ − ⌊ k 2 ⌋ -\frac{r}{2} \ge -\lfloor \frac{k}{2} \rfloor 2r2k
      r − r 2 = r 2 ≥ r − ⌊ k 2 ⌋ r-\frac{r}{2}=\frac{r}{2} \ge r-\lfloor \frac{k}{2} \rfloor r2r=2rr2k
      [ l , m ] [l, m] [l,m]区间长度为 r − ⌊ k 2 ⌋ r-\lfloor\frac{k}{2}\rfloor r2k,由表示区间为 [ 1 , m ] [1, m] [1,m]的左子树来划分区间,是左子树表示区间的后缀区间。
      r − ⌊ k 2 ⌋ ≤ r 2 r-\lfloor \frac{k}{2} \rfloor\le \frac{r}{2} r2k2r
      左子树区间长度 ⌈ k 2 ⌉ < k \lceil \frac{k}{2} \rceil<k 2k<k。已知当n<k时定理成立。
      即区间长度为 ⌈ k 2 ⌉ \lceil \frac{k}{2} \rceil 2k的线段树可以把长为 r − ⌊ k 2 ⌋ r-\lfloor \frac{k}{2} \rfloor r2k的前缀区间划分为不超过 l o g 2 ( r − ⌊ k 2 ⌋ ) log_2(r-\lfloor \frac{k}{2} \rfloor) log2(r2k⌋)个由线段树中结点表示的区间。
      l o g 2 ( r − ⌊ k 2 ⌋ ) ≤ l o g 2 r 2 = l o g 2 r − 1 log_2(r-\lfloor \frac{k}{2} \rfloor)\le log_2\frac{r}{2}=log_2r-1 log2(r2k⌋)log22r=log2r1
      因此区间 [ l , m ] [l, m] [l,m]被左子树划分成的最大区间数为 l o g 2 r − 1 log_2r-1 log2r1,加上先前划出的一个区间 [ m + 1 , k ] [m+1, k] [m+1,k],后缀区间 [ l , k ] [l, k] [l,k]被表示区间 [ 1 , k ] [1,k] [1,k]的线段树划分成的区间数不多于 l o g 2 r log_2r log2r

综上:区间长度为n的线段树把任意长为r的后缀区间划分为不超过 l o g 2 r log_2r log2r个由线段树中结点表示的区间

证明:区间长度为n的线段树把任意长为L的子区间划分为不超过 2 l o g 2 L 2log_2L 2log2L个由线段树中结点表示的区间。

使用数学归纳法

  1. 易知,当n=1, n=2时成立
  2. k ≥ 3 k\ge 3 k3,已知 n < k n<k n<k时定理成立,证明 n = k n=k n=k时定理成立
    记长为L的区间为 [ l , r ] [l, r] [l,r],有3种情况:
    线段树表示的整体区间为 [ 1 , k ] [1, k] [1,k] m = ⌊ k + 1 2 ⌋ = ⌈ k 2 ⌉ m=\lfloor \frac{k+1}{2}\rfloor=\lceil \frac{k}{2}\rceil m=2k+1=2k,左孩子区间 [ 1 , m ] [1, m] [1,m],长度为 ⌈ k 2 ⌉ \lceil \frac{k}{2}\rceil 2k,右孩子区间 [ m + 1 , k ] [m+1, k] [m+1,k],长度为 ⌊ k 2 ⌋ \lfloor \frac{k}{2} \rfloor 2k
  • 如果 r ≤ m r\le m rm,则区间 [ l , r ] [l, r] [l,r]完全可以由左子树来划分区间,由于左子树表示的区间长度 ⌈ k 2 ⌉ ≤ k \lceil \frac{k}{2} \rceil \le k 2kk,满足 n < k n<k n<k,定理成立。
  • 如果 l ≥ m + 1 l \ge m+1 lm+1,则区间 [ l , r ] [l, r] [l,r]完全可以由右子树来划分区间,由于右子树表示的区间长度 ⌊ k 2 ⌋ ≤ k \lfloor \frac{k}{2} \rfloor \le k 2kk,满足 n < k n<k n<k,定理成立。
  • 如果 l ≤ m ≤ r l\le m \le r lmr,则可以把 [ l , r ] [l, r] [l,r]区间分为 [ l , m ] , [ m + 1 , r ] [l, m], [m+1, r] [l,m],[m+1,r]两个区间。
    [ l , m ] [l, m] [l,m]是表示区间 [ 1 , m ] [1, m] [1,m]的左子树的后缀区间,长度为 m − l + 1 m-l+1 ml+1根据引理5,区间 [ l , m ] [l, m] [l,m]可以被线段树划分为不超过 l o g 2 ( m − l + 1 ) log_2(m-l+1) log2(ml+1)个区间。
    [ m + 1 , r ] [m+1, r] [m+1,r]是表示区间 [ m + 1 , k ] [m+1, k] [m+1,k]的右子树的前缀区间,长度为 r − m r-m rm,根据引理4,区间 [ m + 1 , r ] [m+1, r] [m+1,r]可以被线段树划分为不超过 l o g 2 ( r − m ) log_2(r-m) log2(rm)个区间。
    l o g 2 ( m − l + 1 ) ≤ l o g 2 ( r − l + 1 ) = l o g 2 L log_2(m-l+1)\le log_2(r-l+1) = log_2L log2(ml+1)log2(rl+1)=log2L
    l o g 2 ( r − m ) ≤ l o g 2 ( r − l + 1 ) = l o g 2 L log_2(r-m) \le log_2(r-l+1)=log_2L log2(rm)log2(rl+1)=log2L
    划分出的总区间数为 l o g 2 ( m − l + 1 ) + l o g 2 ( r − m ) ≤ 2 l o g 2 L log_2(m-l+1)+log_2(r-m)\le 2log_2L log2(ml+1)+log2(rm)2log2L,定理成立。

综上:区间长度为n的线段树把任意长为L的子区间划分为不超过 2 l o g 2 L 2log_2L 2log2L个由线段树中结点表示的区间。

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值