《第5章常用算法查找.ppt》由会员分享,可在线阅读,更多相关《第5章常用算法查找.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章常用算法查找 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望课程安排课程安排5.1 查找的基本概念查找的基本概念5.2 简单查找简单查找5.3 二叉排序树二叉排序树5.4 索引查找索引查找5.5 哈希表哈希表5.1 查找的基本概念查找的基本概念主关键字和次关键字主关键字和次关键字查找结果查找结果静态查找表和动态查找表静态查找表和动态查找表5.2 简单查找简单查找顺序查找顺序查找 从线性表的一端开始,依次将每个记录的关键字与给定值进行比较,若某个记录的关键字等
2、于给定值,表示查找成功,返回记录序号;若将线性表中所有记录都比较完,仍未找到关键字与给定值相等的记录,则表示查找失败,返回一个失败值。折半查找折半查找 又称为二分查找。这种查找方法要求查找表的数据是线性结构保存,并且还要求查找表中的数据是按关键字由小到大有序排列。6965903792628545.2 简单查找简单查找折半查找折半查找 5.3 二叉排序树二叉排序树二叉排序数或者是一棵空树,或者是一棵具有以下性质的二叉树:(1)若它有左子树,则左子树上所有结点的数据均小于根结点的数据。(2)若它有右子树,则右子树上所有结点的数据均大于根结点的数据。(3)左、右子树本身又各是一棵二叉排序树。5.3.
3、1 二叉排序树的定义二叉排序树的定义5.3 二叉排序树二叉排序树插入结点插入结点查找结点查找结点删除结点删除结点5.3 二叉排序树二叉排序树插入结点插入结点查找结点查找结点删除结点删除结点5.3 二叉排序树二叉排序树删除叶结点删除叶结点5.3 二叉排序树二叉排序树删除无右子树结点删除无右子树结点5.3 二叉排序树二叉排序树删除有左右子树结点删除有左右子树结点5.4 索引查找索引查找主表和索引表主表和索引表创建索引的一般过程创建索引的一般过程 索引的特点索引的特点 5.4.1 索引的概念索引的概念5.4 索引查找索引查找在索引表中进行查找在索引表中进行查找引查找的过程是:(1)首先根据给定的关键
4、字key,按定义的函数计算出索引值index1,在索引表上查找出索引值等于index1的索引项,以确定对应子表在主表中的开始位置和长度,(2)接着根据从索引表中获取的开始序号start,在主表指定位置(即子表的开始处)顺序查找关键字key。向主表中插入数据向主表中插入数据 在线性表的索引存储结构上进行插入和删除运算的算法,与查找算法类似,其具体过程如下:(1)根据待插入元素的值查找索引表,确定出对应的子表。(2)接着,根据待插入元素的关键字,在该子表中做插入元素的操作。(3)插入完成后,修改索引表中的相应子表的长度。5.4.1 索引查找算法索引查找算法5.5 哈希表哈希表 哈希表的基本思想是:以线性表中每个元素的关键字key为自变量,通过一定的函数关系h(key)计算出函数的值,把这个值作为数组的下标,将元素存入对应的数组元素中。函数h(key)称为哈希函数,函数的值称为哈希地址。5.5.1 哈希表概述哈希表概述线性表:线性表:哈希函数:哈希函数:5.5 哈希表哈希表直接定址法直接定址法除法取余法除法取余法数字分析法数字分析法平方取中法平方取中法折叠法折叠法5.5.2 构造哈希函数构造哈希函数5.5 哈希表哈希表开放地址法开放地址法线性探测法线性探测法双哈希函数探测法双哈希函数探测法5.5.3 处理冲突处理冲突链接法链接法性格决定命运性格决定命运,专注成就人生专注成就人生