1.顺序查找(不在讨论)2.二分查找,插值查找,斐波那契查找3.树表查找4.分块查找5.哈希查找public function BinarySearch($a=array(),$val,$n){$low=0;$high = $n-1;$mid = 0;while($low<=$high){???? $mid = ($low+$high)/2;???? if($a[$mid]===$value
分类:
编程语言 时间:
2018-03-07 11:44:01
阅读次数:
158
B 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。 B 树又叫平衡多路查找树。一棵m阶的B 树 (m叉树)的特性如下: 树中每个结点最多含有m个孩子(m>=2); 除根结点和叶子结点外,其它每个结点至少有[ceil(m / 2)] ...
分类:
其他好文 时间:
2018-03-02 22:14:54
阅读次数:
771
1.定义: b树是为了硬盘快速读取数据而设计的一种多路查找树。目前大多数数据库及文件索引,都是采用b树来储存实现的。一颗m阶B树满足如下性质: (1)树中每个节点至多有m颗子树,至少有ceil(m/2)颗子树 (2)树根节点至少有2颗子树 (3)所有叶节点都在同一层 (4)每个节点包括的数据形式是: ...
分类:
其他好文 时间:
2018-02-25 15:55:11
阅读次数:
183
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。 典型应用:用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。 它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 缺点:空间复杂度比较大 - ...
分类:
其他好文 时间:
2018-02-25 14:43:26
阅读次数:
175
《算法导论》读书笔记之第12章 二叉查找树 摘要: 本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造 ...
分类:
编程语言 时间:
2018-02-25 14:41:58
阅读次数:
231
AVL树(一)之 图文解析 和 C语言的实现 概要 本章介绍AVL树。和前面介绍"二叉查找树"的流程一样,本章先对AVL树的理论知识进行简单介绍,然后给出C语言的实现。本篇实现的二叉查找树是C语言版的,后面章节再分别给出C++和Java版本的实现。建议:若您对"二叉查找树"不熟悉,建议先学完"二叉查 ...
分类:
其他好文 时间:
2018-02-24 15:08:52
阅读次数:
221
伸展树(一)之 图文解析 和 C语言的实现 概要 本章介绍伸展树。它和"二叉查找树"和"AVL树"一样,都是特殊的二叉树。在了解了"二叉查找树"和"AVL树"之后,学习伸展树是一件相当容易的事情。和以往一样,本文会先对伸展树的理论知识进行简单介绍,然后给出C语言的实现。后序再分别给出C++和Java ...
分类:
其他好文 时间:
2018-02-24 15:05:31
阅读次数:
254
二叉查找树(一)之 图文解析 和 C语言的实现 概要 本章先对二叉树的相关理论知识进行介绍,然后给出C语言的详细实现。关于二叉树的学习,需要说明的是:它并不难,不仅不难,而且它非常简单。初次接触树的时候,我也觉得它似乎很难;而之所产生这种感觉主要是由于二叉树有一大堆陌生的概念、性质等内容。而当我真正 ...
分类:
其他好文 时间:
2018-02-24 14:55:05
阅读次数:
243
Treap是为了解决BST(二叉查找树)退化成链的问题 Tree=tree+heap 即在BST的基础上多了一个信息:优先级 优先级就按照堆的性质维护 若是大根堆,将优先级高的转到树的上面 前提是保证BST的性质,即中序遍历不变,如图: 观察发现,前一个图的a向上旋转后,中序遍历不变(当然,右图的b ...
分类:
其他好文 时间:
2018-02-23 22:24:54
阅读次数:
145
红黑树的介绍 红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该特性之外,红黑树还包括许多额外的信息。 红黑树的每个节点上都有存 ...
分类:
编程语言 时间:
2018-02-23 16:03:31
阅读次数:
186