【AC军团周报(第四周)第一篇】线段树从入门到入土【4】(未完成)

本文章连载AC军团周报

-> 线段树 : 从入门到入土【4】

前言

从前有一位远古神犇,他汇集各大数据结构之精华,经过艰苦卓绝的研究,终于炼制成了一种新的,更简洁的,更快的线段树——zkw线段树

(大雾)

四、zkw线段树基础

我们已经学过了线段树的基础了,相信大家已经熟练掌握线段树大概的样子了。

线段树什么样子,,,二叉树?

那二叉树我们怎么进行查找修改?是不是用的递归?

突然,有一天,你可能想,,,

递归好慢啊,又费栈空间,,,

怎么办?可以不用递归吗?

二叉树?诶,好熟悉,我们要是换成完全二叉树呢?这样的我们子节点就好找了啊,直接for就好啊

zkw线段树就是以堆式存储来实现非递归的线段树。堆式存储,好高级的名词,,,实际上,堆式存储就是指像二叉树那样存,可以用一些完全二叉树的性质大到快速查找的目的

首先,上个丑图来了解下zkw线段树的样子:

【AC军团周报(第四周)第一篇】线段树从入门到入土【4】(未完成)_第1张图片

诶,那个8怎么是红的?

我们首先可以看到,这个线段树并不是我们当时看到的线段树那样维护的,原来我们是1~8,这次,我们只维护了0~7?我们编号向左挪了一位?

不然。

实质上我们真的只维护了1~7。为什么?那[0,1)是干什么的呢?

那个节点和我们的查询操作有关。(之后再讲)

首先我们要维护一个M。

这个M记录的是一个2的几次幂数,且满足M<=

转载于:https://www.cnblogs.com/yizimi/p/10056184.html

你可能感兴趣的:(数据结构与算法,大数据)