摘要: 之前我们所采用的那种方法,也被称之为封闭定址法。每个桶单元里存的都是那些与这个桶地址比如K相冲突的词条。也就是说每个词条应该属于哪个桶所对应的列表,都是在事先已经注定的。经过一个确定的哈希函数,这些绿色方块只会掉到K这个桶里,它不可能被散列到其他的桶单元。 与此同时,分离链接散列算法还有一个亟待解决 阅读全文
posted @ 2018-08-04 17:53 仪式黑刃 阅读(23226) 评论(1) 推荐(2) 编辑
摘要: 之前我们说过,对于需要动态维护的散列表 冲突是不可避免的,无论你的散列函数设计的有多么精妙。因此我们解决的重要问题就是:一旦发生冲突,我们该如何加以排解? 我们在这里讨论最常见的两种方法:分离链接法和开放定址法。本篇探讨前者,下一篇讨论后者。 分离链接法 解决冲突的第一种方法通常叫做分离链接法(se 阅读全文
posted @ 2018-08-03 14:37 仪式黑刃 阅读(9429) 评论(3) 推荐(3) 编辑
摘要: 这篇文章里我们将要讨论一般的实现散列思想最重要的技术——散列函数的设计,这里会讨论一些常见的散列函数。但他们自存在之初就有一个固有的缺陷:无法杜绝的冲突,更糟糕的是从理论上讲这一缺陷无法根本地消除。所以在下一篇将深入讨论解决冲突的策略。 我们知道散列函数是一个映射,功能是将词条空间中的元素映射到散列 阅读全文
posted @ 2018-07-31 20:50 仪式黑刃 阅读(983) 评论(0) 推荐(1) 编辑
摘要: 散列又称词典(dictionary),在讨论这部分内容时我们将看到散列实际上并不是一种简单的技术,从某种意义上讲它甚至是一种思想,是一种赖以高效组织数据,并实现相关算法的重要思想。接下来我们就会看到,在这种思想背后的原理,是如此的直观和简单。毕竟,任何表面复杂的技术背后的原理都是十分简洁而优美的。 阅读全文
posted @ 2018-07-26 12:25 仪式黑刃 阅读(637) 评论(0) 推荐(4) 编辑
摘要: 话说这个系列鸽了好久,之前在准备语言考试,就没管博客了,现在暑假咱们继续上路! 每当我们进行一次插入之后,整棵AVL树的平衡性就有可能发生改变,为了控制整棵树的高度,我们需要通过一系列变换(重平衡)来保证它仍满足AVL的平衡条件。我们把需要重新平衡的节点叫做 ⍺,由于任意节点最多有两个儿子,因此高度 阅读全文
posted @ 2018-07-20 14:36 仪式黑刃 阅读(829) 评论(1) 推荐(0) 编辑
摘要: AVL树是有平衡条件的二叉搜索树。这个平衡条件必须容易保持,而且需要保证树的深度是O(logN)。 AVL=BBST 作为二叉搜索树的最后一部分,我们来介绍最为经典的一种平衡二叉搜索树:AVL树。回顾此前的几节,我们首先介绍的是二叉查找树BST。然而我们也能感受到,尽管从同时兼顾高效的静态操作 和动 阅读全文
posted @ 2017-12-24 17:14 仪式黑刃 阅读(1372) 评论(2) 推荐(1) 编辑
摘要: 极端退化 前面所提到的二叉搜索树,已经为我们对数据集进行高效的静态和动态操作打开了一扇新的大门。正如我们所看到的,BST从策略上可以看作是将之前的向量(动态数组)和链表结构的优势结合起来,不过多少令我们有些失望的是:目前所实现的BST还有些稚嫩,表现在它的时间复杂度在极端情况仍未得到有效的控制。根据 阅读全文
posted @ 2017-12-22 21:04 仪式黑刃 阅读(1235) 评论(0) 推荐(0) 编辑
摘要: 前言:常见的数据结构都有指针和数组两种实现方式,这篇先介绍指针实现,而数组实现在后续文章里会讲到。 (长文预警!) 说完了一般的树,我们再来看看二叉树,这是一种很典型的树,它的所有节点度数都不超过2,最多只有两个孩子。这是一种特例,但是后面我们会看到在保证有序性和有根性之后,它却足以描述所有的树。每 阅读全文
posted @ 2017-12-02 19:30 仪式黑刃 阅读(1283) 评论(4) 推荐(0) 编辑
摘要: <!--StartFragment--> <!--StartFragment--> 这一次将以树作为主题,来讨论相关的术语和操作。而无论在学什么东西之前,都要有一个动机——用来解答为什么要学这个,否则将会漫无目的,迷茫不可终日。 在此前所接触到的两种主要的数据结构,也就是向量(顺序表or数组)以及列 阅读全文
posted @ 2017-11-15 21:52 仪式黑刃 阅读(604) 评论(1) 推荐(0) 编辑
摘要: 前言:因为栈的很多操作是基于表的,所以这篇文章里的例程就不再大面积地写注释了,有不理解的地方可以翻看之前的链表笔记,或者直接写在评论区。 咳咳,说到这个栈,很多人乍听之下感觉很陌生、卧槽这是什么玩意。其实生活中随处可见,在一些小餐馆,客人不多的时候,椅子都是放成一摞的,一个叠一个。有客人来了就搬下来 阅读全文
posted @ 2017-10-29 11:39 仪式黑刃 阅读(496) 评论(0) 推荐(0) 编辑