数据结构查找.ppt
《数据结构查找.ppt》由会员分享,可在线阅读,更多相关《数据结构查找.ppt(71页珍藏版)》请在第壹文秘上搜索。
1、第第8 8章章 查找查找1.1.关键字关键字 在实际应用问题中,每个记录一般包含有多在实际应用问题中,每个记录一般包含有多个数据域,查找是根据其中某一个指定的域进行个数据域,查找是根据其中某一个指定的域进行的,这个作为查找依据的域称关键字(的,这个作为查找依据的域称关键字(keykey)。)。主关键字主关键字 可唯一标识一个记录的关键字。例:学号可唯一标识一个记录的关键字。例:学号次关键字次关键字 可识别若干记录的关键字。例:性别可识别若干记录的关键字。例:性别8.1 8.1 基本概念与术语基本概念与术语2.2.查找表查找表 是由同一类型的数据元素是由同一类型的数据元素( (或记录或记录) )
2、构成的集构成的集合,由于合,由于“集合集合”中的数据元素之间存在着松散中的数据元素之间存在着松散的关系,因此的关系,因此查找表查找表是一种应用灵便的数据结构是一种应用灵便的数据结构。 对查找表经常进行的操作有对查找表经常进行的操作有:查询、检索、:查询、检索、插入、删除。插入、删除。 分类分类:静态查找表:静态查找表 动态查找表动态查找表3 3. .查找查找 根据给定的某个值,在查找表中确定一个其根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素。若表中存关键字等于给定值的记录或数据元素。若表中存在这样的一个记录,则称查找是成功的,若表中在这样的一个记录,则称查找是成功的,
3、若表中不存在关键字等于给定值的记录,则称查找不成不存在关键字等于给定值的记录,则称查找不成功。功。静态查找静态查找 只查找,不改变数据元素集内的数据元素。只查找,不改变数据元素集内的数据元素。动态查找动态查找 既查找,又改变既查找,又改变( (增减增减) )集合内的数据元素。集合内的数据元素。4.4.平均查找长度平均查找长度(Average Search Length)(Average Search Length) 为确定记录在查找表中的位置,需和给定值为确定记录在查找表中的位置,需和给定值进行比较的关键字个数的期望值称为查找算法进行比较的关键字个数的期望值称为查找算法在查找成功时的平均查找长
4、度(在查找成功时的平均查找长度(ASLASL)。)。 对于含有对于含有 n n 个记录的表,查找成功时的平个记录的表,查找成功时的平均查找长度为:均查找长度为: ASLASL = = = =niiipc1查找表中第查找表中第i i 个个记录的概率,且记录的概率,且= =nii=1=1p1找表中关键字与给定值相等找表中关键字与给定值相等的第的第i i 个记录时,和给定值个记录时,和给定值已进行过比较的关键字个数已进行过比较的关键字个数8.2 8.2 静态查表法静态查表法8.2.1 8.2.1 顺序表的查找顺序表的查找 也称线性查找。也称线性查找。1.1.查找过程:查找过程: 对给定的一关键字对给
5、定的一关键字 K K,从线性表的一端开,从线性表的一端开始,逐个进行记录的关键字和始,逐个进行记录的关键字和 K K 的比较,直的比较,直到找到关键字等于到找到关键字等于 K K 的记录或到达表的另一的记录或到达表的另一端。端。2.2.实现顺序查找的数据结构实现顺序查找的数据结构 typedef structtypedef struct int key; int key; /关键字域关键字域 /其他域其他域 SSTable;SSTable;3.3.顺序查找的算法顺序查找的算法int seqsearch(SSTable ST , int n, int key) int seqsearch(SST
6、able ST , int n, int key) int i=n; int i=n; while(STi.key!=key) while(STi.key!=key)&(i=1)&(i=1) i- -; i- -; return i; return i; (return i=4return i=4)Key = 80Key = 80408030601020250 1 2 3 4 5 6 74.4.算法分析算法分析查找成功时的平均查找次数为:查找成功时的平均查找次数为: ASL=(1+2+3+4+ASL=(1+2+3+4+n)/n = (n+1)/2 +n)/n = (n+1)/2 查找不成功时的
7、比较次数为:查找不成功时的比较次数为: ASL=(n(n+1)/n = n+1ASL=(n(n+1)/n = n+1 则顺序查找的平均查找长度为:则顺序查找的平均查找长度为: ASL=(ASL=( + + )/2 = 3(n+1)/4)/2 = 3(n+1)/4优点优点:算法简单,无需排序,采用顺序和链式存储均可。算法简单,无需排序,采用顺序和链式存储均可。缺点:缺点:平均查找长度较大。平均查找长度较大。 可用折半查找(二分法查找)来实现。可用折半查找(二分法查找)来实现。1.1.查找思想查找思想 先确定待查找记录所在的范围,然后逐步缩先确定待查找记录所在的范围,然后逐步缩小范围,直到找到或确
8、认找不到该记录为止。小范围,直到找到或确认找不到该记录为止。 前提条件:前提条件: 必须在具有顺序存储结构的有序表中进行。必须在具有顺序存储结构的有序表中进行。8.2.2 8.2.2 二分查找二分查找查找查找23和和79的过程如下图:的过程如下图:mid=(low+high)/2( 08, 14, 23, 37, 46, 55, 68, 79, 91 )( 08, 14, 23, 37, 46, 55, 68, 79, 91 )lowhighmid( 08, 14, 23, 37, 46, 55, 68, 79, 91 )lowhigh=mid-1mid( 08, 14, 23, 37, 46
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 查找