线段树在算法中的应[朱凯迪].docVIP

  • 1
  • 0
  • 约1.22万字
  • 约 13页
  • 2016-09-20 发布于贵州
  • 举报
线段树在算法中的应[朱凯迪]

线段树在算法中的应用 作者:朱凯迪 作者单位:宁波工程学院 Email:zukaidi@163.com 摘 要: 计算机信息学竞赛中出现了越来越多的统计,查找,规划,排序,染色等等的题目。平衡二叉树和线段树是两种最常见的解决此类问题的数据结构。可是平衡二叉树有一个缺点,就是变成复杂度很高。我们可以看到在某些题目中,线段树是它的有力替代品。这篇论文主要介绍了线段树的操作,优化以及应用。该论文也会系统地介绍染色问题使用线段树的一般解法。 关键词:线段树 数据结构 信息学 算法 线段树的定义及特征 一棵二叉树,记为T(a, b),参数a, b表示该结点表示的区间[a, b]。区间长度b-a记为L。递归定义T[a, b]: 若L1:[a, (a + b) div 2]为T的左儿子 [(a + b) div 2, b]为T的右儿子。 若L=1:T为一个叶子结点。 表示区间[1, 10]的线段树表示如图1-1所示: (图1-1) 定理1:线段树把区间任意一条线段都分成不超过条线段。 证明: 在区间(a, b)中,对于线段(c, d),如果(c = a)或(d = b),那么线段在(a, b)中被分为不超过。 用归纳法证明,如果是单位区间,最多被分为一段,成立。 如果区间(a, b)的左儿子与右儿子成立,那么如果当c = a时, 若d = (a + b

文档评论(0)

1亿VIP精品文档

相关文档