数据结构的扩张(动态有序统计和区间树)笔记
2013-10-29 20:48
169 查看
对一个数据结构的扩张可以分为四个步骤:
1. 选择基础的数据结构
2. 确定要在基础数据结构中添加那些信息
3. 严重可用基础数据结构的基本修改操作来维护这些新添加的信息的复杂度
4. 设计新的操作
动态顺序统计
OS-SELECT(x, i)
r=size[left[x]+1]
if i==r
return x
else if i<r
return OS-SELECT(left[x], i)
else return OS-SELECT(right[x], i-r)
关键点:
扩充的数据结构,对于结点 x 添加的辅助信息是以x为根的子树结点的个数。
case 1: 向左递归查找,是查找第i小的元素
case 2: 向右递归查找,是查找第i-r小的元素。因为,左子树和根结点都比右子树的key小,左子树和根结点已经有r个值,所有只需要在右子树中找到第i-r小的元素,即全局第i小的元素。
区间树
INTERVAL_SEARCH(T, i)
x=root[T]
while x!=nil[T] and i does not overlap x
if left[x] != nil[T] and max[left[x]]>=low[i]
x = left[x]
else
x = right[x]
return x
关键点:
区间树每次只能找到其中的一条满足条件的区间,对于找出所有满足条件的区间,需要找一个删一个再重新搜索,时间复杂度是O(k*log(n)) k:有k个满足条件的区间。n:有n区间结点。
case 1: 如果向右子树中查找,则在左子树中必然不存在满足条件的x(即 left[x] == nil[T] or max[left[x]]<low[i])
case 2: 如果在左子树中查找不到,则在右子树中也不可能存在.
1. 选择基础的数据结构
2. 确定要在基础数据结构中添加那些信息
3. 严重可用基础数据结构的基本修改操作来维护这些新添加的信息的复杂度
4. 设计新的操作
动态顺序统计
OS-SELECT(x, i)
r=size[left[x]+1]
if i==r
return x
else if i<r
return OS-SELECT(left[x], i)
else return OS-SELECT(right[x], i-r)
关键点:
扩充的数据结构,对于结点 x 添加的辅助信息是以x为根的子树结点的个数。
case 1: 向左递归查找,是查找第i小的元素
case 2: 向右递归查找,是查找第i-r小的元素。因为,左子树和根结点都比右子树的key小,左子树和根结点已经有r个值,所有只需要在右子树中找到第i-r小的元素,即全局第i小的元素。
区间树
INTERVAL_SEARCH(T, i)
x=root[T]
while x!=nil[T] and i does not overlap x
if left[x] != nil[T] and max[left[x]]>=low[i]
x = left[x]
else
x = right[x]
return x
关键点:
区间树每次只能找到其中的一条满足条件的区间,对于找出所有满足条件的区间,需要找一个删一个再重新搜索,时间复杂度是O(k*log(n)) k:有k个满足条件的区间。n:有n区间结点。
case 1: 如果向右子树中查找,则在左子树中必然不存在满足条件的x(即 left[x] == nil[T] or max[left[x]]<low[i])
case 2: 如果在左子树中查找不到,则在右子树中也不可能存在.
相关文章推荐
- 算法系列笔记5(扩展数据结构-动态顺序统计和区间树)
- 【算法导论】第十一课 扩充的数据结构、动态有序统计和区间树
- 数据结构之五(数据结构的扩充、动态统计、区间树)
- 第十四章 数据结构扩张 动态顺序统计部分代码
- 《算法导论》第十四章----数据结构的扩张(动态顺序统计)
- MIT:算法导论——11.扩充的数据结构、动态有序统计和区间树
- 《算法导论》第14章 数据结构的扩张 (1)动态顺序统计
- 《算法导论》第14章 数据结构的扩张 (1)动态顺序统计
- 算法导论 第14章 数据结构的扩张(一)动态顺序统计树
- 《算法导论》第14章 数据结构的扩张 (1)动态顺序统计
- 《算法导论》第14章 数据结构的扩张 (1)动态顺序统计
- 数据结构编程笔记二十五:第九章 查找 二叉排序树(动态查找表)查找算法的实现
- 数据结构-红黑树扩张-顺序统计树
- 数据结构复习笔记七:动态存储管理
- 算法导论 红黑树的扩张 动态顺序统计
- 数据结构学习笔记 --- 二叉排序树和平衡二叉树(动态查找表)
- 数据结构-红黑树扩张-区间树
- 算法导论 ch14 数据结构的扩张 区间树
- 算法导论 14章 数据结构的扩张(二) 区间树
- 《算法导论》笔记 第14章 14.1 动态顺序统计