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

转自: http://scinart.github.io/acm/2014/03/19/acm-segment-tree-space-analysis/

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

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

img

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

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

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

H(L)=k+H(L2k), k 2kL

所以

H(L)=lgL+1.

所以显然所需空间为

2H1===2lgL+112×2lgL12×2(L1)1,L24L5,L2
-- EOF --

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值