- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【C语言版】9第九章查找课件
数据结构
第九章 查找
计算机科学系 施化吉
E-mail: hjshi002@163.com; 所谓查找(Search)又称检索,就是在一个数据元素集合中寻找满足某种条件的数据元素。
查找在计算机数据处理中是经常使用的操作。查找算法的效率高低直接关系到应用系统的性能。
查找的方法很多,本章将介绍一些常用的查找算法,主要有:线性表的查找、树表的查找和散列表的查找。
并对有关的算法进行性能分析和对比。;9.1 基本概念 ;9..1 基本概念 ;3.查找
查找(Search)是数据处理中最常用的一种运算。最常见的一种方式是事先给定一个值,在数据表中找到其关键字等于给定值的数据元素。查找结果通常有两种可能:;3.查找:(续)
查找结果通常有两种:
一种可能是查找成功:
即找到关键字等于给定值的数据元素,
这时作为查找结果,可报告该数据元素在数据表中的位置,
还可进一步给出该数据元???的具体信息;
另一种可能是查找不成功(查找失败):
即数据表中找不到其关键字等于给定值的数据元素,
此时查找的结果可给出一个空记录或空指针。;4.静态查找表和动态查找表:
数据表的组织有两种不同方式:
其一,数据表的结构固定不变.
当查找失败时,作为查找结果只报告一些信息,如失败标志、失败位置等,
这类数据表称为静态查找表;
其二,数据表的结构在插入或删除数据元素过程中会得到调整.
当查找失败时,则把给定值的数据元素插入到数据表中,
这类组织方式的数据表称为动态查找表。;5.查找的效率:
查找是经常使用的一种运算,因此,查找的时间复杂度是人们关心的一个重要因素。
查找的时间复杂度一般用平均查找长度(ASL)来衡量。
平均查找长度是指在数据表中查找各数据元素所需进行的关键字比较次数的期望值,其数学定义为:;5.查找的效率:(续)
平均查找长度是指在数据表中查找各数据元素所需进行的关键字比较次数的期望值,其数学定义为:;9.2 线性表上的查找;在本章以后各节中,约定关键字和数据元素类型为:
典型的关键字类型可能有:
typedef float KeyType;//实型
typedef int KeyType;//整型
typedef char* KeyType;//字符串型
数据元素类型定义为:
typedef struct{
KeyType key;//关键字域
…… //其他域
}ElemType;
静态查找表的顺序存储结构为:
typedef struct{
ElemType *elem; //元素从1号单元开始存储
int length; //表的长度
}SSTable;;在顺序存储结构下的顺序查找算法如下:
Status Search (SSTable L,KeyType k) {//在顺序表中查找关键字为k的数据元素
int i = L.length;
while ( L.elem[i].key != k ) i --;
return i;
};例 ;在顺序存储结构下的顺序查找算法如下:
Status Search (SSTable L,KeyType k) {
//在顺序表中查找关键字为k的数据元素
int i = L.length;
L.elem[0].key = k; //在0号位置设置监视哨
while (L.elem[i].key != k ) i --;
return i;
};例 ;在等概率情形下查找成功的平均查找长度为:;9.2.2 有序表的折半查找 ;1)若L.elem[mid].key = x,则查找成功,报告成功信息并返回其下标mid;
2)若L.elem[mid].key x,则说明如果数据表中存在要找的数据元素,该数据元素一定在mid的右侧,可把查找区间缩小到数据表的后半部分(low=mid+1),再继续进行折半查找(转步骤1);
3)若L.elem[mid].key x,则说明如果数据表中存在要找的数据元素,该数据元素一定在mid的左侧。可把查找区间缩小到数据表的前半部分(high=mid-1),再继续进行折半查找(转步骤1)。
举例说明:;设有序表为{8,11,23,34,46,68,71,86}.
下图(a)给出了查找关键字为23的数据元素时的查找过程,找到所查数据元素一共做了3次关键字比较。
图(b)给出了查找关键字为52的数据元素时的查找过程,直到确认查找失败也执行了3次关键字比较。;Status BinarySearch (S
您可能关注的文档
- 第4章MATLAB求解数学问题课件.ppt
- 第4讲 企业使命、SWOT-2014课件.ppt
- 第4章 热电式传感器.PPT.jsp课件.ppt
- 第4章_数据库系统_第2节_Data Model课件.ppt
- 第4章液压执行元件4课件.ppt
- 第5章 电子商务系统商务逻辑层设计课件.ppt
- 第5章 机械加工精度2课件.ppt
- 第5章 公共部门人力资源规划概论课件.ppt
- 第5章 粉体学基础10-19课件.ppt
- 第5章 1持有至到期投资课件.ppt
- 【定稿】葛文山苏派名师(梁丰高中)课件.ppt
- 【SQDH】2015-2016学年(人教版)八年级语文下册:14 大雁归来课件.ppt
- 【CCNP 9-2】Multilayer Switch Principle课件.ppt
- 【珍藏精品】2011届高考第一轮总复习经典实用学案:高三册Units5-6课件.ppt
- 【民诉】 第十一章 法院调解课件.ppt
- 003-长沙高端公寓精装市场-调研报告课件.ppt
- 《营养午餐》人教版四年级下册 数学课件.ppt
- 02 基本原则课件.ppt
- 02-04 EpiData软件应用_2011-11-18-09-03-12课件.ppt
- 【民诉】第十八章 再审程序课件.ppt
最近下载
- 《仪器分析—分光光度计》学科知识考试题库(附答案).docx VIP
- 年产770吨精细化学品改扩建项目(达得利公司)环境影响报告.pdf
- JCT 899-2016 混凝土路缘石.docx VIP
- JB T 3695-2008 电动葫芦桥式起重机 标准.pdf VIP
- 桥梁桩基施工专项方案(新编制) .pdf VIP
- 马拉松赛事赛事组织管理与赛事赛事经济效益评价报告.docx
- (GBT7588 1—2020)电梯制造与安装安全规范.pdf VIP
- 电子焊接培训课件.ppt
- 纪念中国人民抗日战争暨世界反法西斯战争胜利80周年主题党课PPT(优质ppt).pptx VIP
- 管幕顶进施工方法及装置.pdf VIP
文档评论(0)