- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)
否则:查找不成功,结束。
您可能关注的文档
最近下载
- 建设单位质量强制性条文实施管理措施.pdf VIP
- 2021军队文职统一考试(公共科目)真题及答案.pdf VIP
- 2025年吉林机关事业单位工人技术等级考试(花卉工·高级技师)历年参考题库含答案详解(5卷).docx VIP
- 高校网络课程教学资源开发计划.docx VIP
- 南京市2024年有关建设工程计价管理问题解答汇编(四).docx VIP
- 2025年执业药师继续教育构建执业药师药学服务能力三支柱模型答案.docx VIP
- 社区工作者考试必考题库及答案(真题版).docx VIP
- 工程项目风险控制与应对措施报告.docx VIP
- 一年级语文拼音生字每日一练.pdf
- 2025年1月黑龙江高中学业水平合格考英语试卷真题(含答案).pdf VIP
文档评论(0)