八、 查找
查找表
关键词
- 静态查找表
- 动态查找表
顺序查找表
定义:又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个(或最后一个)记录开始,逐个进行记录的关键词和给定值比较,若某个记录的关键词和给定值相等,则查找成功,找到所查的记录;如果查到最后一个(或第一个记录),其关键词和给定值比较不等时,则表中没有所查的记录,查找不成功。
时间复杂度:
- 最好。O(1)
- 最差。O(n)
- 平均。O((n+1)/2)
有序表查找
折半查找,又为二分查找
- 查找二叉树
插值查找
斐波那契查找
线性索引查找
索引就是把一个关键字与它对应的记录相关联的过程
- 稠密索引
- 分块索引
- 倒排索引
分块索引
定义:把数据集的记录分块,并且这些块满足以下条件
- 块内无序。记录每个块的最大关键字和块内查找的数量
- 块间有序。后一个块比前一个块的大
倒排索引
定义:记录号表中存储具有相同次关键词的所有记录的记录号(可以是指向记录的指针或者是该记录的主关键字)
二叉排序树
平衡二叉树(AVL)
定义:是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于一
二叉树节点的左子树深度减去右子树深度的值称为平衡因子BF(Balance Factor)
多路查找树(B树)
定义:其每个节点的孩子数可以多于两个,且每个节点处可以存储多个元素
2-3树
定义:其中每个节点都具有两个孩子(两节点)或三个孩子(三节点)
2-3-4树
B树:所有的叶子节点都在同一层
- 有两个子节点的节点叫做二节点 二节点要么有两个子节点,要么没有子节点
- 有三个子节点的节点叫做三节点 三节点要么有三个子节点,要么没有子节点
B+树
散列表