----------- 搜 索 -----------
Feynman1999
理论都是灰色的,而生活之树常青^_^
展开
-
有序表的查找
一、折半查找我们大概都玩过猜数字的游戏,比如一个玩家给定一个在1~1000之内的数,另一个拆任意一个数,该玩家告诉那个人答案是偏大而是偏小。我们通常的做法是取剩下可能数字区间的一半,然后重复这个操作。这种每次取中间记录查找的方法叫做折半查找,也称为二分查找(binary search)。它的前提是线性表中的记录必须是关键码有序(通常从小到大有序),线性表必须采用顺序存储。折半查找的基本原创 2017-05-16 16:36:13 · 563 阅读 · 0 评论 -
线性索引查找
零、引言索引就是把一个关键字与它对应的记录相关联的过程。一个索引由若干个索引项构成,每个索引项至少应包含关键字和其对应的记录在存储器中的位置等信息。索引技术是组织大型数据库以及磁盘文件的一种重要技术。索引按照结构可以分为线性索引、树形索引和多级索引。下面介绍的是线性索引技术。所谓线性索引就是将索引项集合组织为线性结构,也称为索引表。主要有三种基本的线索索引:稠密索引、分块索引和倒排原创 2017-05-16 20:14:57 · 639 阅读 · 0 评论 -
二叉排序树(二叉搜索、查找树)(BST树)
零、引言如果一个数据集是循序存储,那么插入操作就是将记录放在表的末端,给表记录数加一即可;删除操作可以是删除后,后面的记录向前移,也可以是要删除的元素与最后一个元素互换,表记录数减一。这样整个数据集是无序的,插入和删除的效率很高,但是查找的效率就很低。如果查找的数据集是有序线性表,并且是顺序存储的,查找就可以用折半、插值、斐波那契等查找法来实现。但是,因为数据的有序,在插入和删除操作上,就原创 2017-05-17 20:55:30 · 751 阅读 · 0 评论 -
平衡二叉树(AVL)的实现
引言AVL树是一种改进的二叉排序树,得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis(两位俄罗斯数学家)。他们在 1962 年的论文《An algorithm for the organization of information》中发表了它。原文PDF链接平衡二叉树(Self-Balancing Binary Search Tree)是一种原创 2017-05-18 20:43:19 · 428 阅读 · 1 评论 -
哈希表与哈希函数简介
哈希表通过查找关键字不需要比较就可获得需要的记录的存储位置。即存储位置=f(关键字)这就是一种新的存储技术---散列技术(哈希技术)散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值key的映射f(key),若查找集合中存在这个记录,则必定在 f(key)的位置上。这里我们把原创 2017-06-01 20:52:42 · 927 阅读 · 0 评论 -
数列分段(最小化最大值)
problem1对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。N≤100000,M≤10^9,M大于所有数的最小值,A[i]之和不超过10^9。思路由于段是连续的,可以贪心,从左往右扫描一遍,每一次超过m停止,将前面这一部分置为一段,统计段数。时间复杂度O(n)" role="pr原创 2018-01-24 23:15:06 · 3022 阅读 · 0 评论 -
二分法综述
二分搜索法,是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。对于二分,写法有很多种,有人组合过写法,细节差别会产生64种写法……我的写法考虑二分的序列,我们在二分时,会有一个check函数,即看当前mid在序列什么位置,以便于后续二分。这里就需要一个“标准”,不然答案会产生差异……考虑原序列是01型序列(即正相关)还是10型序列(即负相关)均为左开右闭区间...原创 2018-01-25 23:16:45 · 271 阅读 · 0 评论 -
2-3树
前面介绍了二叉查找树(Binary Search Tree),他对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低。本文及后面文章介绍的平衡查找树的数据结构能够保证在最差的情况下也能达到lgN的效率,要实现这一目标我们需要保证树在插入完成之后始终保持平衡状态,这就是平衡查找树(Balanced Search Tree)。在一棵具有N 个节点的树中,我们希望该树转载 2017-05-23 21:31:48 · 568 阅读 · 0 评论 -
B树与B+树(好文推荐)
本文转载自http://www.cnblogs.com/yangecnu/p/3632027.html引言前面讲解了平衡查找树中的2-3树以及其实现红黑树。2-3树中,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key。维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的转载 2017-05-23 23:09:35 · 2169 阅读 · 0 评论