自考数据结构02142第六章ppt课件.ppt
《自考数据结构02142第六章ppt课件.ppt》由会员分享,可在线阅读,更多相关《自考数据结构02142第六章ppt课件.ppt(29页珍藏版)》请在三一办公上搜索。
1、第六章 查找,6.1 基本概念6.2 静态查找表6.3 二叉排序树6.4 散列表,6.1 基本概念,查找表由同一类型的数据元素(或记录) 构成的集合。,关键字(键)用来标识数据元素的数据项称 为关键字,简称键;其值称为键值。,主关键字可以惟一标识各个数据元素的关键字,查找根据给定的某个k值,在查找表寻找一个 其键值等于k的数据元素。,静态查找表进行的是引用型运算,动态查找表进行的是加工型运算,6.2 静态查找表的实现,查找表用顺序表表示:(见P163) #define maxsize 20 /静态查找表的表长 typedef struct TableElem etemmaxsize+1 ;/*
2、一维数组,0号单元留空*/ int n ; /*最后一个元素的下标,也即表长*/ SqTable ;,typedef struct keytype key ; /*关键字域 */ /*其它域*/ TableElem ;,6.2.1 顺序表上的查找顺序查找,一、过程 从表中最后一个记录开始顺序进行查找,若当前记录的关键字=给定值,则查找成功;否则,继续查上一记录;若直至第一个记录尚未找到需要的记录,则查找失败。,二、算法,方法一:使用一种设计技巧:设立岗哨 int search_sqtable(sqtable T, keytype K) /*在顺序表R中顺序查找其关键字等于key的元素。 若找到
3、,则函数值为该元素在表中的位置,否则为0*/ T.item0.key=key; i=T.n; while ( T.itemi.key!=key ) i- - ; return i ; ,三、算法分析,成功查找:ASL=ni=1CiPi (设每个记录的查找概率相等) =1/n ni=1(n-i+1) =(n+1)/2不成功查找:ASL=n+1顺序查找优点:简单,对表无要求;顺序查找缺点:比较次数多。,6.2.2 有序表上的查找二分查找,1、二分查找思想:,每次找中项,.中项是,则找到;,.否则,根据此中项的关键字与给 定关键字的关系,决定在表的前 或后半部继续找。,关键点。可使下次查找范围缩小一
4、半。,二分查找基本思想:每次将处于查找区间中间位置上的数据元素与给定值K比较,若不等则缩小查找区间并在新的区间内重复上述过程,直到查找成功或查找区间长度为0(查找不成功)为止。,(2)给定关键字k与中项记录关键字比较 Kitem mid.key,则所查记录落在表的前半部; 继续在前半部找,此时low不变,high=mid-1 Kitem mid.key,则查找成功,中项即是,结束; Kitem mid.key,则所查记录落在表的后半部; 继续在后半部找,此时low=mid+1,high不变,(3)若lowhigh,则转(1),否则查找不成功。, item1, , itemmid-1, item
5、mid, itemmid+1, , itemn ,3、二分查找算法:,2、二分查找过程:表头指针low=1 表尾指针high=n,因为1835,所以:,15,17,18,22,35,51,60,88,93 low mid high,4、例:(在下列有序顺序表中查找K=18),1 2 3 4 5 6 7 8 9,因为1817,所以:,因为18=18,所以:查找成功,回送结果为mid=3,5、算法分析:,成功查找时平均查找长度: ASL=ni=1CiPi (设每个记录的查找概率相等) =1/n hj=1(j*2j-1) =(n+1)/n * log2(n+1)-1 log2(n+1)log2n(n
6、+1)/2,注意:对线性表进行二分查找时,要求线性表必: 以顺序方式存储,且结点按关键字有序排序,6.2.3 索引顺序表的查找分块查找,一、查找过程:1.先建立最大(或小)关键字表索引表(有序) 即将每块中最大(或最小)关键字及指示块首记录在表中位置的指针依次存入一张表中,此表称为索引表;2.查找索引表,以确定所查元素所在块号; 将查找关键字k与索引表中每一元素(即各块中最大关键字)进行比较,以确定所查元素所在块号;3.在相应块中按顺序查找关键字为k的记录。,二、例:记录表 22,12,13,9,8,33,42,44,38,24,48,60, 58,74,47 ,查关键字38的元素,表可分三块
7、,块间有序,块中无序,1、先在索引表中(按顺序或折半) 查找:3822而3844 38在第二块中2、在第2块中顺序查找得第9号元素 其关键字为38。,三、算法分析:,分块查找的时间性能高于顺序查找而低于二分查找;分块查找不要求存储结构中数据元素按键值有序。,6.3 动态查找表树表,表结构是在查找过程中动态生成的;对于给定值k,若表中存在其关键字等于k的记录,则查找成功返回,否则在表中插入关键字等于k的记录。,一、二叉排序树什么是二叉排序树?二叉排序树是一种特殊的、增加了限制条件的二叉树,它的存储结构及其类型定义与二叉树相同,它的特殊性表现在结点键值之间的大小关系上,任一结点的键值大于其左孩子(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 数据结构 02142 第六 ppt 课件
链接地址:https://www.31ppt.com/p-1367564.html