[工学]数据结构与算法分析第八章查找.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]数据结构与算法分析第八章查找

Chapter 8 Search; 所谓搜索(查找 检索),就是在数据集合中寻找满足某种条件的数据对象 1.搜索成功 即找到满足条件的数据 对象, 作为结果, 可报告该对象在 结构中的位置, 还可给出该对象中 的具体信息 2.搜索不成功 或搜索失败。作为结 果, 应报告一些信息, 如失败标 志、位置等 ;通常称用于搜索的数据集合为搜索结构,它是由同一数据类型的对象(或记录)组成 在每个对象中有若干属性,其中有一个属性,其值可唯一地标识这个对象。称为关键码。使用基于关键码的搜索,搜索结果应是唯一的。但在实际应用时,搜索条件是多方面的,可以使用基于属性的搜索方法,但搜索结果可能不唯一;实施搜索时有两种不同的环境 静态环境 搜索结构在插入和删除等操作的前后不发生改变 ? 静态搜索表 ;查找算法的评价指标 查找成功:最少比较次数 最多比较次数 平均比较次数 查找失败:最少比较次数 最多比较次数 平均比较次数; 以顺序表或线性链表表示静态查找表;ST.elem;ST.elem;int Search_Seq( TB ST, TYPE key ) { ST.elem[0].key = key; // “哨兵” for (i=ST.length; ST.elem[i].key!=key; --i); // 从后往前找 return i; // 找不到时,i为0 }; 分析顺序查找的 时间性能;查找算法的平均查找长度 (Average Search Length) 为确定记录在查找表中的位置,需 和给定值进行比较的关键字个数的期望 值;其中: n 为表长,Pi 为查找表中第i个记录的概率,且   , Ci为找到该记录时,曾和给定值比较过的关键字的个数;在等概率情形 pi = 1/n, i = 1, 2, ?, n ; 查找成功:最少比较次数  1 最多比较次数  n  平均比较次数 (n+1)/2 查找失败:最少比较次数 n+1 最多比较次数 n+1 平均比较次数 n+1; 上述顺序查找表的查找算法简单,但平均查找长度较大,特别不 适用于表长较大的查找表;基于有序顺序表的折半搜索;1.Element[mid].key==x 搜索成功 2.Element[mid].keyx 把搜索区间缩小到表的前半部分,继续折半搜索 3.Element[mid].keyx 把搜索区间缩小到表的后半部分,继续折半搜索 如果搜索区间已缩小到一个对象,仍未找到想要搜索的对象,则搜索失败;ST.elem;搜索成功的例子;搜索失败的例子;int Search_Bin(TB ST, TYPE key) { low = 1; high = ST.length; while(low=high) { mid=(low+high)/2; if(key==ST.elem[mid].key)return mid; if(keyST.elem[mid].key)high=mid-1; if(keyST.elem[mid].key)low=mid+1; } return 0; };搜索成功时检测指针停留在树中某个结点 搜索不成功时检测指针停留在某个外结点(失败结点);有序顺序表的折半搜索的判定树 ( 10, 20, 30, 40, 50, 60 ); 先看一个具体的情况,假设:n=11; 查找成功:最少比较次数  ? 最多比较次数  ?  平均比较次数 ? 查找失败:最少比较次数 ? 最多比较次数 ? 平均比较次数 ?;假设 n=2h-1 并且查找概率相等 则 在n50时,可得近似结果 ;索引顺序查找; 分块查找 查找过程:将表分成几块,块内无序,块间有序;先确定待查记录所在块,再在块内查找 适用条件:分块有序表 算法实现 用数组存放待查记录,每个数据元素至少含有关键字域 建立索引表,每个索引表结点含有最大关键字域和指向本块第一个结点的指针;1 2 3

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档