数据结构 查找 ppt.ppt

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

第9章 查找 * * 查找 指定某个值,在查找表中确定是否存在一个记录,该记录的关键字等于给定值。 查找表 是同一类型的记录(数据元素)的集合。 关键字 是记录(数据元素)中的某个数据项的值。 主关键字 该关键字可以唯一地标识一个记录。 次关键字 该关键字不能唯一标识一个记录。 静态查找表 对查找表的查找仅是以查询为目的, 不改动查找表中的数据。 动态查找表 在查找的过程中同时插入不存在的 记录,或删除某个已存在的记录。 查找成功 查找表中存在满足查找条件的记录。 查找不成功 查找表中不存在满足查找条件的记录。 内查找 整个查找过程都在内存中进行。 外查找 在查找过程中需要访问外存。 平均查找长度ASL 为确定记录在查找表中的位置,需将关键字和给定值比较次数的期望值。 查找成功时的ASL计算方法: n:记录的个数 pi:查找第i个记录的概率( 不特别 声明时认为等概率 pi =1/n ) ci:找到第i个记录所需的比较次数 静态查找表 不考虑在查找的同时修改表 顺序表的查找 (a1, a2, ...... an ) 0 1 2 n A[0..n] a1 a2 an # define KeyType int # define MAX 10 typedef struct aNode{ KeyType key; InfoType otherinfo; } aNode; typedef aNode findlist[MAX]; int Find(findlist A, KeyType K ) { A[0].key=K; for (i=n; A[i].key!=K; i--); return(i); } # define KeyType int # define MAX 10 int Find(KeyType A[MAX], KeyType K ) { A[0]=K; for (i=n; A[i]!=K; i--); return(i); } [程序设计技巧] 设置监视哨R[0],提高算法效率。 [性能分析] 空间复杂度:一个辅助空间。 时间复杂度: 1) 查找成功时的平均查找长度 设表中各记录查找概率相等 ASLs(n)= =(1+2+ ... +n)/n =(n+1)/2 2)查找不成功时的平均查找长度 ASLf =n+1 [算法特点] 此算法也适合链式存储结构 n很大时查找效率较低 改进措施:非等概率查找时,可将查找概率高的记录尽量排在表前部。 满足 A[i].key ? A[i+1].key, 1 ?i n [折半(对半/二分)查找法] 0 1 2 3 4 5 6 7 8 9 10 11 05 13 19 21 37 56 64 75 80 88 92 ?low ?mid ?high K=21 l h m K=85 l h m 1 11 6 1 11 6 1 5 3 7 11 9 4 5 4 10 11 10

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档