- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)