严蔚敏数据结构第9章查找1.ppt-中国网页设计.ppt

严蔚敏数据结构第9章查找1.ppt-中国网页设计.ppt

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

数 据 结 构 (C语言版); 第九章 查找表 授课教师:姬广永 ;9.2 静态查找表;1. 何谓查找表 ?;2. 对查找表经常进行的操作:;仅作查询和检索操作的查找表。;是数据元素(或记录)中某个数据项的值,用以标识(识别)一个数据元素(或记录)。;举例:; 根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素 (或记录)。 ;6. 如何进行查找?;9.2 静态查找表;typedef struct { ElemType *elem; // 数据元素存储空间基址,建表时 // 按实际长度分配,0号单元留空 int length; // 表的长度 } SSTable;;数据元素类型的定义为:; “顺序”的含义:从表尾(或表头)开始以顺序方式搜索查找表,将关键字与给定值进行比较。 查找的顺序与数据元素的存储位置有关系。;ST.elem;;int Search_Seq(SSTable ST, KeyType kval) { // 在顺序表ST中顺序查找其关键字等于kval的数据元素。 //若找到,则函数值为该元素在表中的位置,否则为0。 for (int i=1; (i=ST.length)(ST.elem[i].key!=kval); i++){} if(i=ST.length) return i; else return 0;// 找不到时,i为0 } ;ST.elem;int Search_Seq(SSTable ST, KeyType kval) { // 在顺序表ST中顺序查找其关键字等于kval的数据元素。 //若找到,则函数值为该元素在表中的位置,否则为0。 ST.elem[0].key = kval; // 设置“哨兵” for (i=ST.length; --i); return i; // 找不到时,i为0 }; 定义: 查找算法的平均查找长度 为确定记录在查找表中的位置,需和给定值 进行比较的关键字个数的期望值 其中: n 为表长,Pi 为查找表中第i个记录的查找概率,Ci为找到该记录时,曾和给定值比较过的关键字的个数; 在等概率查找的情况下, 顺序表查找的平均查找长度为: ;考虑查找不成功的情况; 上述顺序查找表中的查找算法简单, 但平均查找长度较大,特别不适用于表长较大的查找表。;ST.elem;ST.elem;折半查找: (1)mid= (low+high)/2 (2)比较 ST.elem[mid].key = = key? 如果 ST.elem[mid].key = = key,则查找成功, 返回mid值 如果 ST.elem[mid].key key,则置high=mid-1 如果 ST.elem[mid].key key,则置low=mid+1 (3)重复计算mid 以及比较ST.elem[mid].key与 key, 当lowhigh时,表明查找不成功,查找结束。 int Search_Bin(SSTable ST,KeyType key) { };算法9.2(p220) int Search_Bin(SSTable ST,KeyType key) //折半查找 { int low,high,mid; low = 1; high=ST.length; //置区间初值 while (low = high) { mid = (low+high)/2; if (key==ST.elem[mid].key) return mid; //找到待查元素 else if (keyST.elem[mid].key) high=mid-1; //继续在前半区间进行查找 else low=mid+1; //继续在后半区间进行查找 } return 0; //顺序表中不存在待查元素 } //Search_Bin;例 ;1 2 3 4 5 6 7 8 9 10 11;算法评价 判定树:描述查找过程的二叉树叫~ 有n个结点的判定树的深度为?log2n?+1

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档