查找
查找
查找的定义
查找是一种根据给定的某个值在查找表中确定一个其关键字等于给定值的记录的操作
顺序查找
线性查找
线性查找是最基本的查找技术,从表头或表尾开始逐个记录与给定值比较,如果记录关键字和给定值相等则查找成功,如果直到最后一个记录都没有相等则查找失败
有序查找
折半查找
折半查找是一种有序查找,在有序表中取中间记录作为比较对象,如果给定值与中间记录的关键字相等则查找成功,如果过给定值小于中间记录的关键字则在中间记录的左半区继续查找,如果过给定值大于中间记录的关键字则在中间记录的右半区继续查找,不断重复这个过程,如果记录关键字和给定值相等则查找成功,如果直到最后一个记录都没有相等则查找失败
插值查找
插值查找是一种改进的折半查找,折半查找每次都是取中间记录作为比较对象,而插值查找每次是取插值记录作为比较对象,折半查找的插值固定为 1 / 2 ,而插值查找的插值为给定关键字与最小记录关键字之差比上最大记录关键字与最小记录关键字之差
斐波那契查找
斐波那契查找是一种改进的折半查找,折半查找每次都是取中间记录作为比较对象,而斐波那契查找每次是取斐波那契数列记录作为比较对象,斐波那契数列记录的计算和有序表记录数量在斐波那契数列中所处的位置相关
线性索引
稠密索引
稠密索引的索引表中,每个索引项都是唯一的关键字记录,索引项排列有序
分块索引
分块索引的索引表中,每个索引项都是唯一的关键字记录块,关键字记录块需要满足块内无序块间有序,索引项排列有序
倒排索引
倒排索引的索引表中,每个索引项都是唯一的次关键字记录,索引项排列有序
二叉查找树
二叉查找树
二叉查找树是一种二叉树,左子树上所有结点的值均小于根结点的值,右子树上所有结点的值均大于根结点的值,并且左右子树也均为二叉查找树
平衡二叉树
平衡二叉树是一种二叉查找树,每个结点的左子树和右子树的绝对高度差均不大于1
多路查找树
多路查找树
多路查找树是一种树,每个结点可以存储多个元素,每个结点可以有多个孩子
多路查找树的类型
2-3树
2-3-4树
B树
B+树
B树
B树是一种平衡的多路查找树,2-3树和2-3-4树都是B树的特例
B+树
B+树是一种B树的变形树,严格意义上来讲已经不能算树,因为B+树的叶结点之间是有连线的,是为应对文件系统所需而有的数据结构
哈希表查找
哈希表查找
哈希表查找是一种利用哈希函数在哈希表中查找记录的技术
哈希函数的构造方法
直接定址法
数字分析法
平方取中法
折叠法
除留余数法
随机数法
哈希冲突的处理方法
开放定址法
再哈希函数法
链地址法
公共溢出区法
排序
排序
排序的定义
排序是一种使任意序列成为一个按照关键字有序的序列的操作