第七章 查找--以下代码由C语言实现
王道学习
知识框架

7.1 查找的基本概念






7.2 顺序查找和折半查找
7.2.1 顺序查找
1、一般线性表的顺序查找





2、有序表的顺序查找




7.2.2 折半查找










7.2.3 分块查找










7.2.4 本节试题精选














7.3 树型查找
7.3.1 平衡二叉树的删除




















7.3.2 红黑树
红黑树的定义和性质







红黑树的插入































红黑树的删除

7.4 B树
7.4.1 B树的介绍










B树的高度(碰盘存取次数)
B树中的大部分操作所需的磁盘存取次数与B树的高度成正比



7.4.2 B树的插入和删除
插入














删除

















7.4.3 B+树


















7.5 散列表
7.5.1 散列表的基本概念
在前面介绍的线性表和树表的查找中,记录在表中的位置与记录的关键字之间不存在确定关系,因此,在这些表中查找记录时需进行一系列的关键字比较。这类查找方法建立在“比较”的基础上,查找的效率取决于比较的次数。
散列函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,记为Hash(key) =Addr(这里的地址可以是数组不标、索引或内存地址等)。
散列函数可能会把两介或两个以上的不同关键字映射到同一地址,称这种情况为冲突,这些发生碰撞的不同关键字称为同义词。一方面,设计得好的散列函数应尽量减少这样的冲突;另一方面,由于这样的冲突总是不可避免的,所以还要设计好处理冲突的方法。
散列表:根据关键字而直接进行访问的数据结构。也就是说,散列表建立了关键字和存储地址之间的一种直接映射关系。
理想情况下,对散列表进行查找的时间复杂度为O(1),即与表中元素的个数无关。下面分别介绍常用的散列函数和处理冲突的方法。

7.5.2 散列函数的构造方法








7.5.3 处理冲突的方法





























7.5.4 散列查找及性能分析









7.5.5 本节试题精选













浙公网安备 33010602011771号