第5章常用算法——查找_第1页
第5章常用算法——查找_第2页
第5章常用算法——查找_第3页
第5章常用算法——查找_第4页
第5章常用算法——查找_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、零基础学算法零基础学算法第第5章章: 常用算法常用算法查找查找课程安排课程安排5.1 查找的基本概念查找的基本概念5.2 简单查找简单查找5.3 二叉排序树二叉排序树5.4 索引查找索引查找5.5 哈希表哈希表5.1 查找的基本概念查找的基本概念主关键字和次关键字主关键字和次关键字查找结果查找结果静态查找表和动态查找表静态查找表和动态查找表5.2 简单查找简单查找顺序查找顺序查找 从线性表的一端开始,依次将每个记录的关键字与给定值进行比较,若某个记录的关键字等于给定值,表示查找成功,返回记录序号;若将线性表中所有记录都比较完,仍未找到关键字与给定值相等的记录,则表示查找失败,返回一个失败值。折

2、半查找折半查找 又称为二分查找。这种查找方法要求查找表的数据是线性结构保存,并且还要求查找表中的数据是按关键字由小到大有序排列。6965903792628545.2 简单查找简单查找折半查找折半查找 5.3 二叉排序树二叉排序树二叉排序数或者是一棵空树,或者是一棵具有以下性质的二叉树:(1)若它有左子树,则左子树上所有结点的数据均小于根结点的数据。(2)若它有右子树,则右子树上所有结点的数据均大于根结点的数据。(3)左、右子树本身又各是一棵二叉排序树。5.3.1 二叉排序树的定义二叉排序树的定义5.3 二叉排序树二叉排序树插入结点插入结点查找结点查找结点删除结点删除结点5.3 二叉排序树二叉排

3、序树插入结点插入结点查找结点查找结点删除结点删除结点5.3 二叉排序树二叉排序树删除叶结点删除叶结点5.3 二叉排序树二叉排序树删除无右子树结点删除无右子树结点5.3 二叉排序树二叉排序树删除有左右子树结点删除有左右子树结点5.4 索引查找索引查找主表和索引表主表和索引表创建索引的一般过程创建索引的一般过程 索引的特点索引的特点 5.4.1 索引的概念索引的概念5.4 索引查找索引查找在索引表中进行查找在索引表中进行查找引查找的过程是:(1)首先根据给定的关键字key,按定义的函数计算出索引值index1,在索引表上查找出索引值等于index1的索引项,以确定对应子表在主表中的开始位置和长度,

4、(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 哈希表哈希表开放地址法开放地址法 线性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论