对一种数据结构的扩张过程可分为四步骤:
1)选择基础数据结构
2)确定要在基础数据结构中添加哪些信息
3)验证可用基础数据结构上的基本修改操作来维护这些新添加的信息
4)设计新的操作
动态顺序统计
动态顺序统计在红黑树的基础上添加x.size域,满足:x.size = x.left.size+x.right.size+1,扩张的结构如下:
操作:
1)检索具有给定秩的元...
分类:
编程语言 时间:
2015-07-17 10:11:34
阅读次数:
143
本文的基础是红黑树 算法导论–红黑树通过在基础的数据结构中添加一些附加信息,来扩张一种标准的数据结构,然后编写新的操作来支持所需要的应用。下面是介绍在红黑树的基础上扩张的数据结构。1.动态顺序统计动态顺序统计可以在O(lgn)时间内确定任何的顺序统计量(即在n个元素的集合中,能在O(lgn)的时间内确定第i小的元素),同时也可以在O(lgn)的时间内计算一个元素的秩(即它在中序遍历下的位置顺序)...
分类:
编程语言 时间:
2015-05-20 16:26:45
阅读次数:
267
在编程中,我们往往使用已有的数据结构无法解决问题,这是不必要急着创建新的数据结构,而是在已有数据结构的基础上添加新的字段。本节在上一次笔记红黑树这一基础数据结构上进行扩展,得出两个重要的应用—动态顺序统计和区间树。
动态顺序统计
在算法系列笔记2中我们在线性时间内完成了静态表的顺序统计,而这里我们在红黑树上进行扩展,在O(lgn)时间内完成该操作,主要包括返回第i
排名的元素o...
分类:
编程语言 时间:
2015-02-03 23:00:43
阅读次数:
342
算法导论读书笔记(16)目录动态顺序统计检索具有给定排序的元素确定一个元素的秩区间树步骤1:基础数据结构步骤2:附加信息步骤3:维护信息步骤4:设计新操作动态顺序统计之前介绍过
顺序统计 的概念。在一个无序的集合中,任意的顺序统计量都可以在 O ( n )时间内找到。而这里我们将介绍如何在 O ( ...
分类:
其他好文 时间:
2014-05-30 23:14:23
阅读次数:
338