第7章 查找(Search).pptxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 查找(Search)

第7章 查找(Search) 7.1 查找基本概念 7.2 基于线性表静态查找 7.3 基于树表动态查找 7.4 哈希查找 第7章 查找 Introduction 查找是非数值处理中一种最基本、最重要的操作。 查找,也称检索,是一种运算,是软件设计中经常遇到的一种运算。数据结构不同,查找方法也会不同。查找方法的好坏直接影响着计算机的使用效率。 查找概述 2 第7章 查找 7.1、查找基本概念 1)查找 Search:又称检索,是指在大量的数据中寻找关键字等于给定值的记录。若存在这样一个记录,则称查找成功,否则称查找不成功。 分为:静态查找;动态查找; 2)关键字 (Keyword):就是数据元素中可以唯一标识一个数据元素的数据项。 例如:学生管理登记卡中的学号。 3)平均查找长度 (Average Search Length) (ASL) 算法评价 :评价时考虑:(1) 速度; (2) 占用存储空间; (3) 复杂程度。 3 第7章 查找 引入平均查找长度,作为查找算法评价的依据。 平均查找长度:为确定记录在表中的位置所进行的和关键字比较的次数的期望值,简写为ASL. 含有n个元素的表中找一个元素成功的ASL为: Pi为查找第i个元素的概率; Ci为 查到第i个元素所需的比较次数。 4 第7章 查找 结构体数组 typedef struct {char name[10]; KeyType key; }DataType; DataType r[Maxnum]; 设表中记录以顺序存储结构组织。 每个记录包括:关键字,其他数据项等。 其类型说明用C语言描述如下: 4) 类型说明: 5 第7章 查找 5)查找方法: 顺序表静态查找, 树表动态查找,哈希查找 7.2、基于线性表的静态查找 顺序表上的查找主要有三种方法: 顺序查找法:针对顺序表存储结构 折半查找法:针对有序顺序表存储结构 分块查找:针对索引顺序表存储结构 6 第7章 查找 基本思想:从第一个元素开始,将给定值及表中逐个元素的关键字比较,直至检索成功或直至最后一个元素检索失败为止。 1. 顺序查找: 7 第7章 查找 int Seqsearch (DataType r[ ] ,int key, int n) { int i=0; while ( r[ i ].key != key i n) i ++; if (r[ i ].key ==key) return i ; else return -1 ; } 顺序查找算法: 演示:查找key=56 8 第7章 查找 算法分析: 表从r[1]-r[Max], r[0]存放key。 改进算法: 希望尽量减少比较次数。 9 第7章 查找 32 int seqsearch(DataType r[], int key, int n) {int i; r[0].key=key; i=n; while(r[i].key!=key) i--; return i; } 算法描述 0 1 2 3 4 5 6 7 8 演示:查找 key=32 10 第7章 查找 算法分析 算法简单,效率较低 算法特点 11 第7章 查找 2.折半查找法(对半或二分查找) 针对有序表使用的查找方法,是简单有效的方法。 有序表:记录的关键字以递增(或递减)顺序排列的表。 基本思想:给定值key及中间位置的记录的关键字比 较,若相等则查找成功;若给定值大于中间 位置记录的关键字值,则在表的后半部分继 续折半查找;否则在表的前半部分进行折半 查找,直至查找成功或不成功。 12 第7章 查找 步骤: (1)计算中间位置 mid=(low+high)/2取整。 (2)key及R[mid].key比较 若key=R[mid].key则查找成功; 若keyR[mid].key ,则high=mid-1,转(3)。 若keyR[mid].key ,则low=mid+1,转(3)。 (3)若low≤high, 则重复(1) 否则:查找不成功,结束。

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档