《数据结构教程》第八章查找.ppt
《《数据结构教程》第八章查找.ppt》由会员分享,可在线阅读,更多相关《《数据结构教程》第八章查找.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构数据结构第一章第一章 绪论绪论第二章第二章 线性表线性表第三章第三章 稀疏矩阵和广义表稀疏矩阵和广义表第四章第四章 栈和队列栈和队列第五章第五章 树和二叉树树和二叉树第六章第六章 二叉树的应用二叉树的应用第七章第七章 图图第八章第八章 查找查找第九章第九章 排序排序第八章 查找 8.1 对查找的操作:l l1 1)查询(检索)某个“特定的”数 据元素是否在查找表中及各 种属性;l l2 2)在查找表中在查找表中插入一个数据元素;一个数据元素;l l3 3)从查找表中)从查找表中删去某个数据元素。某个数据元素。1.顺序查找顺序查找2.二分查找二分查找3.索引顺序索引顺序8.2 8.2 静
2、态查找表静态查找表顺序搜索的平均搜索长度顺序搜索的平均搜索长度 设搜索第设搜索第 i 个元素的概率为个元素的概率为 pi,搜索到第,搜索到第 i 个元素个元素所需比较次数为所需比较次数为 ci,则搜索成功的平均搜索长度,则搜索成功的平均搜索长度:在顺序搜索情形,在顺序搜索情形,ci=i+1,i=0,1,n-1,因此,因此在等概率情形,在等概率情形,pi=1/n,i=0,1,n-1。1.顺序查找顺序查找顺序查找算法Struc elemtypeeneytype data;keytype key;Int seqserch(elemtype a,int n,keytype k)an.key=k;for
3、(int i=0;i+)if(ai.key=k)break;If(in)return IElse return-1;2.二分查找条件:表已排序思想:第一步把表一分为二;判定查找的元素落在哪部分;依据上述步骤重复直到最后找到(或对半结束查找不成功)算法下一页Int binserch(elemtype a,int low,int hiht,keytype k)if(low=high)int mid=(low+high)/2;if(k=amid.key)return mid;else if(kamid.key)return binserch(a,low,mid-1,k);else return bi
4、nserch(a,mid,high-1,k)return-1;下一页图示搜索成功的例子搜索成功的例子 搜索失败的例子搜索失败的例子下一页判定树搜索成功的情形搜索成功的情形 搜索不成功的情形搜索不成功的情形从有序表构造出的二叉搜索树从有序表构造出的二叉搜索树(判定树判定树)n n 若设若设 n=2h-1,2h=n+1,h=log2(n+1)。n n 第第0层结点有层结点有1个,搜索第个,搜索第0层结点要比较层结点要比较1次;次;第第1层结点有层结点有2个,搜索第个,搜索第1层结点要比较层结点要比较2次;次;,顺序查找表的查找算法简单,顺序查找表的查找算法简单,但但 平均查找长度较大,特别不适用于
5、平均查找长度较大,特别不适用于 表长较大的查找表。表长较大的查找表。总结:总结:有序查找表有序查找表 若以若以有序表有序表表示静态查找表,则表示静态查找表,则查找过程可以基于查找过程可以基于“折半折半”进行。进行。5.3 索引顺序表的查找过程:索引顺序表的查找过程:1)由索引确定记录所在区间;)由索引确定记录所在区间;2)在顺序表的某个区间内进行查找。)在顺序表的某个区间内进行查找。索引可以根据查找表的特点来构造。索引可以根据查找表的特点来构造。索引顺序查找索引顺序查找的过程也是一个的过程也是一个“缩小区间缩小区间”的查找过程。的查找过程。一、索引顺序查找的数据结构:一、索引顺序查找的数据结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构教程 数据结构 教程 第八 查找
限制150内