van Emde Boas 树

以下将 vEB 树作为 van Emde Boas 树的简称。

vEB 树存在的意义是突破 O(lgn) 操作性能的极限。在基于比较的动态集合数据结构中,是存在这样的极限的。如同基于比较的排序方法也有 O(nlgn) 的性能极限一样。

vEB 树只在有限大小的全域 u 中有效,采用位图思想。

提前说一个结论,完全体的 vEB 树所有操作都可以在 O(lglgu) 时间内完成,其中 u 是树的全域。

基本方法

这一节讲了几种基本方法,是 vEB 树的思想基础,大概发明 vEB 树的过程就是这些思想不断完善的过程。

直接寻址就是简单的位图方法。

叠加的二叉树结构是在位图上叠加一个“逻辑或”的二叉树,即树中结点的值等于两个孩子结点值的“逻辑或”。

叠加的一颗高度恒定的树在二叉树的基础改进,从底部到顶部不再是二叉树的每次结点规模缩小一半,而是每次结点规模缩小全域 u 的平方根,这样树的高度总是 2.

这三种方法是步步改进的,每次改进总会在某些方面性能有所提升。

递归结构

这一节讲的是 vEB 树的原型结构,大概是 vEB 树发展过程中的一个重要结点(至少这时候有 vEB 这个名称了)

原型的关键点是,在位图上叠加树的思想上再次改进,上层结点规模缩小为下层结点规模的平方根。改进自上一节的高度恒定的二叉树。

关于缩小规模的改进依据,是由对递归结构的性能分析方法得出的。

原型 vEB 树的结构

在具体的实现中多了一种 summary 结构,组织形式也有所变化,简单的说就是十分复杂(难以简短的用文字描述,具体的看书吧)。

原型 vEB 树的操作

这一小节分析结构上的各种操作,并分析性能

MEMBER 操作,O(lglgu)
MINIMUM 操作,O(lgu)
SUCCESSOR 操作,O(lgu lglgu),渐进慢于 MINIMUM
INSERT 操作,O(lgu)
DELETE 操作

大部分操作都达不到 O(lglgu) 的性能,其原因是大部分操作中都进行了多次递归调用。按照递归性能的分析公式,要达到 O(lglgu) 的性能,操作中只能有一次递归。

这是标准的用公式和方法论,来指导数据结构和算法的设计,而且已经明确算法能够达到的性能。

van Emde Boas 树及其操作

这一节同样是按照结构和操作的顺序组织的。

先说改进方法,上一节中已经明确了指导思想,要减少操作中的递归为一次。但估计如何实现这一点也是前人做了许多探索,书中给出的有效改进是,在原型的基础上给每个结构增加 min 和 max 两个属性。

vEB 树结构

min 和 max 两个属性是减少递归次数的关键,书中分析了这两个属性的多种作用,能够降低多个操作的复杂性。可以说 vEB 树的性能关键就在于对 min 和 max 的巧妙利用。

其中 min 不存储在树中的任何一个簇中。

vEB 树操作

书中给出了 MINIMUM、MAXIMUM、MEMBER、SUCCESSOR、PREDECESSOR、INSERT、DELETE 等所有操作的伪代码和分析。

所有的操作最坏运行时间均为 O(lglgu)。

看到结尾我有点感慨,相比于之前的多种数据结构,vEB 树是一种在方法论和公式指导下设计出来的数据结构,让我有一种“人定胜天”的感觉。这就好比以前化学元素的发现靠的是机缘巧合和灵光一现,而现在,寻找一种新的化学元素,我们只需要按照科学的方法去尝试,就总能找到。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 5,806评论 0 13
  • 一. 算法之变,结构为宗 计算机在很多情况下被应用于检索数据,比如航空和铁路运输业的航班信息和列车时刻表的查询,都...
    Leesper阅读 6,906评论 13 42
  • 原文地址:http://theory.stanford.edu/~amitp/GameProgramming/ 1...
    达微阅读 19,452评论 0 28
  • 就是把自己的思想强加于他人 并一直认为自己是正确的 你不是我 你不知道我走过的路 不知道我心中的苦与乐 不要凭借着...
    面食者阅读 336评论 0 0
  • 众小仙女们有没有过这样的经历?别人口中效果好到不行的护肤品,对你却是大鸡肋?买了很贵的面霜精华面膜,先抛开护肤效果...
    潮流一起说阅读 281评论 0 0