练习---第7---查找.ppt

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

考研要求 (一)???查找的基本概念 (二)???顺序查找法 (三)???折半查找法 (四)???B树及其基本操作、B+树的基本概念 (五)???散列(Hash)表 (六)???查找算法的分析及应用? 讲课思路 静态查找表 顺序表的查找(使用监视哨) 有序表的查找 动态查找结构 二叉查找树 平衡二叉树 B树和B+树 填 空 所谓( ),就是在数据集合中寻找满足某种条件的数据对象。( )的结果通常有两种可能:成功,即找到满足条件的数据对象。这时,作为结果,可报告该对象在结构中的位置, 还可给出该对象中的具体信息。不成功,或查找失败。作为结果,应报告一些信息,如失败标志、位置等。 通常称用于查找的数据集合为查找结构,它是由同一数据类型的对象(或记录)组成。在每个对象中有若干属性,其中有一个属性,其值可唯一地标识这个对象。称为( )。 实施查找时有两种不同的环境。 ( )环境,查找结构在插入和删除等操作的前后不发生改变。该种查找表称为( )。 ( )环境,为保持较高的查找效率, 查找结构在执行插入和删除等操作的前后将自动进行调整,结构可能发生变化。该种查找表称为( )。 填 空 使用( )的顺序查找是将最后一个数据单元的下一个单元设置为( ),从前向后顺序查找。 顺序查找(Sequential Search) 顺序查找主要用于在线性表中查找。 设若表中有 CurrentSize 个元素,则顺序查找从表的前端开始,顺序用各元素的关键码与给定值 x 进行比较 若找到与其值相等的元素,则查找成功,给出该元素在表中的位置。 若整个表都已检测完仍未找到关键码与 x 相等的元素,则查找失败。给出失败信息。 一般的顺序查找算法在第二章已经讨论过。殷人昆介绍一种使用“监视哨”的顺序查找方法。最后一个数据单元的下一个单元作为“监视哨”使用。而动画里的“监视哨”是放在0号单元。 使用监视哨的顺序搜索算法 int dataList::SeqSearch (const K x) const { Element[CurrentSize].key = x; //将最后一个数据单元的下一个单元设置为监视哨 int i = 0; while (Element[i].key != x) i++; //从前向后顺序搜索 return i+1; } const int Size = 10; main () { dataList L1 (Size); //定义int型搜索表L1 int Target; int Loc; cin L1; cout L1; //输入10个数到L1,输出 cout Search for a integer : ; cin Target; //输入要搜索的数据 if ( (Location = L1.SeqSearch(Target)) != L1.Length() ) //监视哨 cout 找到待查元素位置在: Loc+1 endl; //搜索成功 else cout 没有找到待查元素\n; //搜索不成功 } 填 空 在查找成功的平均查找长度公式中,设数据表中有 n 个元素, 表示( ), 表示( )。 在顺序查找未设置“监视哨”情形: ci = i +1, i = 0, 1, ?, n-1, 等概率情形,查找成功的平均查找长度为: 等概率情形,查找不成功情形,查找不成功的平均查找长度为: 总 结 顺序表搜索等概率情况下, 搜索成功的平均比较次数(n+1)/2 搜索不成功的比较次数 n 插入的平均移动元素个数n/2 删除的平均移动元素个数(n-1)/2 一般的查找表,表中的数据元素是无序的,该算法查找成功的平均查找长度是(n+1)/2,平均需要查找一半的表元素;查找失败需要查找n或n+1个元素。 而基于有序表的顺序查找,速度可以加

文档评论(0)

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

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

1亿VIP精品文档

相关文档