zoukankan      html  css  js  c++  java
  • 线段树为什么要开4倍空间

    线段树为什么要开4倍空间

    Creation Time: 19 March 2014
    Last Modified: 2014-03-23 01:01:26 scinart
     

    最近在看《具体数学》,这篇当做是一个练习吧。

    假设我们用一个数组来头轻脚重地存储一个线段树,根节点是1,孩子节点分别是2n, 2n+1, 那么,设线段长为L(即[1..L+1))

    img

    设树的高度为H,对H,有:

    H(L)={1,L = 11+H(L2),L > 1

    这是一个很简单的递归式,并用公式3.11逐次代换,就等到

    H(L)=k+H(L2k),其中 k 是满足2kL的最小值

    所以

    H(L)=lgL+1.

    所以显然所需空间为

    2H1=2lgL+11=2×2lgL12×2(L1)1,L2=4L5,L2
     
    转自http://scinart.github.io/acm/2014/03/19/acm-segment-tree-space-analysis/
  • 相关阅读:
    正则表达式
    浏览器加载时间线
    浏览器事件
    脚本化CSS
    定时器元素大小位置属性等 20181231
    关于行内元素 20181229
    个人冲刺01
    周总结
    团队冲刺10
    团队冲刺09
  • 原文地址:https://www.cnblogs.com/Tach-ac/p/4401043.html
Copyright © 2011-2022 走看看