- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 查 找;第7章 查 找;7.1 基本概念;7.1 基本概念;7.2 顺序查找; int seqsrch(sqlist r,int k,int n)
{
int i;
r[0].key=k ;
i=n;
whi le (r[i].key!=k) /*第i个元素是k吗*/
i--;
return(i);
};为了表示平均查找次数,定义平均查找长度为:
ASL= ∑PiCi
其中,Pi为查找第i个记录的查找概率;
Ci为查找第i个记录时的比较次数;
n为表中记录个数。;顺序查找的优点是:算法简单且适用面广,它对表的结构无任何要求。无论记录是否按关键字的大小有序,其算法均可应用,而且上述讨论对线性链表也同样适用。;7.3 二分法查找; int bin_search(sqlist r,int k,int n)
{
int low=1,high=n,found=0,mid;
while((low=high) !found)
{
mid=(low+high)/2; /*求中点*/
i f(k==r[mid].key)
return(mid); /*找到k*/
else
{
i f(kr[mid].key)
low=mid+1; /*在后半部分查找*/
else
high=mid-1; /*在前半部分查找*/
}
}
return(-1); /*查找不成功,返回-1作为标记*/
};从以上程序的执行情况分析,每做一次比较,查找的范围都缩小一半。因此二分法查找的平均查找长度为
ASL= log2(n+1) - 1
当n足够大时,可近似表示为 log2n。 可见在查找速度上,二分法查找比顺序查找的速度要快得多,这是它的主要优点。当然,使用二分法查找必须是在顺序存储的条件下,且事先必须做到按关键字值排序才行。;7.4 分块查找;这种表的结构如图所示,它把15个元素的线性表分成三块,每块5个元素,各块采用顺序存储方式独立地存放在三个子表B1 ,B2 ,B3之中,索引表A的每个元素包含两个字段,一个是该块的最大关键字值,另一个是指向子表的指针。;分块查找的平均查找长度由两个部分组成:
ASL= Eb +Ew
Eb为确定某一块所需的平均查找长度,Ew为在块内的平均查找长度。假设线性表中共有n个数据元素,平均分成b块,每块s个数据元素,并假设查找各块概率相等,如果仅考虑成功的查找,则查找某一块的概率为1/b。若在索引表内和块内查找均用顺序查找方法,则在具有s个元素的块内进行顺序查找,查找成功的平均查找长度为Ew=(s+1)/2 ,所以
ASL=Eb+Ew=(b+s)/2+1=(n/s+s)/2+1
当s=n时,ASL取最小值,这时ASL= n+1。;分块查找的速度比顺序查找要快得多,但又不如二分法查找。如果线性表元素个数很多,且被分成的块数 b 很大时,对索引表的查找可以采用二分法查找,还能进一步提高速度。
分块查找的优点是:在线性表中插入或删除一个元素时,只要找到元素应属于的块,然后在块内进行插入和删除运算。由于块内元素的存放是任意的,所以插入和删除比较容易,不需要移动大量元素。;7.5 散列表及其查找;散列法的基本思想是:以记录中关键字的值为自变量,通过确定的函数H(散列函数)进行计算,求出对应的函数值,把这个函数值作为存储地址,将该记录(或 记录的关键字)存放在这个位置上,查找时仍按这个确定的函数H进行计算,获得的将是待查的关键字所在记录的存储地址。;然而,在很多情况下关键字的分布并不那样均匀、连续,而且其数量往往大到存储空间不可承受的地步。在实际问题中关键字值所占的范围很大,而可能出现的关键字个数又不多。;散列法查找归结为如下两个方面:
(1)对给定的一组关键字构造一个计算简单且散列均匀的散列函数;
(2)拟订一个较好解决冲突的方法。;7.5.2 散列函数的构造方法;2. 数字分析法;3. 平方取中法;4. 折叠法;取关键字被某个不大于散列表表长m的质数p除后所得余数为散列地址,即对关键字进行取余运算:
H(k)=k % p (p≤m)
这是一种最简单也最常用的构造散列函数的方法。值得注意的是,在使用此种方法时,对p的选择很重要。若p选得不好,容易产生冲突。理论分析和试验结果均证明,p应取小于表长m的最大
您可能关注的文档
- 建筑施工技术 第二版 ppt第3章 砌体工程 新.ppt
- 建筑施工技术 第二版 ppt第4章 钢筋混凝土工程.ppt
- 建筑施工技术 第二版 ppt第5章 脚手架工程.ppt
- 建筑施工技术 第二版 ppt第8章 结构安装工程.ppt
- 建筑施工技术 第二版 ppt第9章 钢结构工程.ppt
- 建筑施工技术 第二版 ppt第12章 建筑装饰.ppt
- 建筑施工技术 第二版 ppt第十章 防水工程.ppt
- 建筑施工技术 第二版 ppt绪论 钱大行.ppt
- 建筑识图与建筑构造学习情境1.ppt
- 建筑识图与建筑构造学习情境2.ppt
- 数据结构 第四版 高职计算机应用技术专业 安训国 课件第三章 栈与队列.ppt
- 数据结构 第四版 高职计算机应用技术专业 安训国 课件第四章 串.ppt
- 数据结构 第四版 高职计算机应用技术专业 安训国 课件第五章 树.ppt
- 数据结构 第四版 高职计算机应用技术专业 安训国 课件第一章 绪论.ppt
- 数据结构 第四版 高职计算机应用技术专业 安训国 课件数据结构首页.ppt
- 数据库系统及应用 第五版 高职计算机大类专业基础 赖申江数据库 第1章.ppt
- 数据库系统及应用 第五版 高职计算机大类专业基础 赖申江数据库 第2章.ppt
- 数据库系统及应用 第五版 高职计算机大类专业基础 赖申江数据库 第3章.ppt
- 数据库系统及应用 第五版 高职计算机大类专业基础 赖申江数据库 第4章.ppt
- 数据库系统及应用 第五版 高职计算机大类专业基础 赖申江数据库 第5章.ppt
最近下载
- 10万吨有色冶炼废物资源综合利用项目环境影响报告书(重新报批).pdf VIP
- 2.4《最后一片叶子》-【中职专用】高一语文(高教版2023·基础模块上册).pptx VIP
- 军事历史(空军工程大学)网课章节测试答案.pdf
- 案例25-李娟利等与张波集资房买卖的合同 纠纷上诉案.docx VIP
- MAYA灯光材质渲染.ppt VIP
- 中西文化对比提升学生视野教学研究课题报告.docx
- 《材质与灯光渲染》教学大纲.docx VIP
- 《角色绑定与动画》教学大纲.docx VIP
- 高标准农田建设项目复核审计服务115页.docx VIP
- 临床输血操作技术规范、输血制度(2025版).pptx VIP
原创力文档


文档评论(0)