- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch4_1查找 《软件技术 知识基础》 .ppt
4.1 查找;学 号
;§4.1.1 查找的基本概念;查找表
是由具有同一类型的记录组成的集合。
分为静态查找表和动态查找表两类。
1)静态查找表:仅对查找表进行查找操作,而不能改变的表;
2)动态查找表: 除可进行查找操作外,还可进行向表中插入,或删除记录的表。
? 查找
给定一个值K,在查找表中进行搜索,寻找关键字值等于K的记录,如果找到则输出该记录,否则输出查找不成功的信息。也称为检索。;查找方法评价
查找速度
占用存储空间多少
算法本身复杂程度
平均查找长度ASL(Average Search Length):为确定记录在表中的位置,需进行的关键字比较次数的期望值叫查找算法的~;1、 顺序查找
算法描述; 顺序查找 (线性表在顺序存储结构下的顺序查找)
数据结构:
typedef struct{
int key;
float info;
}SSTable;; 顺序查找的算法:
int Search_seq(SSTable ST[ ], int n, int key)
{ int i=n;
ST[0].key=key;
while(ST[i].key!=key) i- -; /*从表尾往前查*/
return i;
};顺序查找方法的ASL;2 折半查找
查找过程:每次将待查记录所在区间缩小一半
适用条件:采用顺序存储结构的有序表
算法实现
设表长为n,low、high和mid分别指向待查元素所在区间的上界、下界和中点,k为给定值
初始时,令low=1, high=n, mid=?(low+high)/2?
让k与mid指向的记录比较
若k==r[mid].key,查找成功
若kr[mid].key,则high=mid-1
若kr[mid].key,则low=mid+1
重复上述操作,直至lowhigh时,查找失败;折半查找
算法描述;例 ;1 2 3 4 5 6 7 8 9 10 11;int Search_Bin( SSTable ST[ ], int n, int key)
{ int low, high,mid;
low=1; high=n;
while(low=high)
{ mid=(low+high)/2;
if( ST[mid].key= = key ) return mid; /*查找成功*/
else if( key ST[mid].key) high=mid-1;
/*在前半区间继续查找*/
else low=mid+1; /*在后半区间继续查找*/
}
return (0); /*查找不成功*/
};算法评价
有n个结点的判定树的深度为?log2n?+1
折半查找法在查找过程中进行的比较次数最多不超过其判定树的深度
折半查找的ASL;3 分块查找(索引顺序查找)
查找过程:将表分成几块,块内无序,块间有序;先确定待查记录所在块,再在块内查找
适用条件:分块有序表
算法实现
用数组存放待查记录,每个数据元素至少含有关键字域
建立索引表,每个索引表结点含有最大关键字域和指向本块第一个结点的指针
算法描述;查找38;分块查找方法评价;ASL;二叉排序树
定义:二叉排序树或是一棵空树,或是具有下列性质的二叉树:
若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值
若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值
它的左、右子树也分别为二叉排序树;?二叉排序树的概念;二叉排序树;{ 10、18、3、8、12、2、7、3 }; 在指针t 所指向的二叉排序树中查找关键字值为K的结点
#define M 100
typedef struct node{
int key;
struct node ?L, ?R;}JD
JD ? pxscz(JD ?t, int K)
{JD ?p;
if(t!=NULL)
{ p=t;
while(p!=NULL)
{ printf(“key= %d\n”,p-key);
if(p-key==k) return (p);
else if(p-keyk) p=p-L;
您可能关注的文档
- CH24 scale development and statistical analysis methods for scale data Medical Statistics医学统计学 教学教案.ppt
- ch24 移动网络(Network Mobility)Section 4.5 of RFC 3344 移动IP技术 知识 .ppt
- CH24 第二十四章 节 使用Indy组件设计网络程序 C++ Builder PPT课件 简体中文版.ppt
- CH25-26-27 民间非营利组织会计概述、资产、负债 非盈利单位会计 幻灯片课件.ppt
- ch26 Limitation of Basic Mobile IP 移动IP技术 知识 .ppt
- ch27 AAA for Mobile IP 移动IP技术 知识 .ppt
- CH27 第二十七章 节 Web Service程序的开发 C++ Builder PPT课件 简体中文版.ppt
- CH28-CH29=CH30-CH31民间非营利组织的收入、费用、净资产、会计报表 非盈利单位会计 演示教学.ppt
- ch2_23栈和队列 《软件技术 知识基础》 .ppt
- Ch2_3 直流电机-电动机 电机学教材.ppt
- Ch4_2 第4章 节 交流绕组—电动势 电机学课件.ppt
- ch4_2排序 《软件技术 知识基础》 .ppt
- CH4_economies of scale 国际贸易理论政策与 及应用英文版本课件.ppt
- ch4_三维设计 数控软件mastercam x 全面基础教程 教材课程.ppt
- ch4_图形界面new_简化 linux教材.ppt
- ch4_时钟及电源管理 嵌入式系统原理与应用技术 知识 .ppt
- ch4使命与战略目标 公司战略相关管理 .ppt
- ch4半导体二极管、三极管和场效应管 电路与 及电子学.ppt
- CH4噪声监测 环境监测教材.ppt
- ch4李亚普诺夫稳定性分析 研究生现代控制工程试卷 教材.ppt
原创力文档


文档评论(0)