看动画学算法之:线段树-segmentTree

文章目录

  • 简介
  • 最小线段树
  • 线段树的构建
  • 线段树的搜索
  • 线段树的更新
  • 线段树的复杂度

简介

什么是线段树呢?线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。

线段树的每个节点都表示一个区间,而根据线段树的不同特征,线段树的节点值可以表示这个区间里的最小值,最大值或者sum值等等。

最小线段树

下面我们以最小线段树为例来说明一下线段树的特性:

看动画学算法之:线段树-segmentTree_第1张图片

如果原始数据是一个数组,我们也以数组来表示线段树。

假设生成的线段树的起点index=1,并且对线段树中的每个非叶子节点index k来说,它的左子节点index=2* k, 而它的右子节点index=2* k+1 。

上图中,标黄色的是原始数组,总共有七个元素。

上面的树形结构就是根据原始

你可能感兴趣的:(看动画学算法,看动画学算法,动画线段树,学习线段树,线段树算法,segmentTree)