树状数组详解:从基础到高级应用.pptx

树状数组——复旦大学计算机科学与技术专业2013级本科生陈子旸

摘要树状数组的历史初始树状数组低位技术(lowbit)单点增量修改,区间和查询单点修改,区间最值查询区间增量修改,单点查询区间增量修改,区间增量查询离线动态第k大数查询树状数组的二维拓展

树状数组的历史树状数组(Binary?Indexed?Tree,BIT)最早由PeterM.Fenwick于1994年提出当时以ANewDataStructureforCumulativeFrequencyTables发表在SOFTWAREPRACTICEANDEXPERIENCE其初衷是解决数据压缩里的累积频率(CumulativeFrequency)的计算问题,现多用于高效计算数列的前缀和。

初始树状数组首先让我们看一下树状数组的样子

初始树状数组对比一下两天后要学的线段树对比一下,就会发现,其实树状数组就是半棵线段树

低位技术(Lowbit)我们称一个x二进制表示的最低位的1为lowbit(x)比如lowbit(36(100100)2)=4(100)2lowbit(42(101010)2)=2(10)2两种lowbit的计算方法lowbit(x)=xand(xxor(x-1))=xand(-x)以后lowbit简写为lbt

初始树状数组树状数

文档评论(0)

1亿VIP精品文档

相关文档