- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件技术基础 算法与数据结构五第2页/共49页3.6 查找与排序 查找与排序是计算机最频繁的操作,特别是大量数据的数据处理领域。排序和查找是两个密切相关、很基本的技术。查找和排序一般数据结构比较简单,主要是算法问题。在早期计算机内存紧张,速度慢时,对程序员尤其重要。如今CPU快速、内存大,相对重要性降低。但是作为学习编程,“想得到它就写得出算法来”还是非常有意义的,还可以开阔思路。它包含了许多编程技巧的精髓。《软件技术基础》电子教案/49第3页/共49页3.6.1 查找查找基本概念 查找表: 由同一类数据构成的用于查找的集合被称作查找表。 查找表是具有一定存储结构的数据集合,比如顺序表结构、链式结构、树形结构等。 查找往往根据数据元素的某个属性进行。例如根据学号查找某个学生记录。这种被用于查找的元素属性一般称为关键字,它往往可以唯一标识一个元素。 《软件技术基础》电子教案/49第4页/共49页 静态查找表: 查找表一旦建立,在以后的查找过程中就不会改变。它所对应的查找算法属于静态查找技术。 动态查找表:查找表建立后,在后来的查找过程中仍会改变查找表的内容。它所对应的查找算法属于动态查找技术。 动态查找的例子——词汇统计问题。就是统计一篇文章中使用了多少词汇以及每个词汇的使用次数。 解决方法是先建立一个空的查找表,以后每读到一个词就在查找表中查询一下,如果该词汇存在则将其使用次数加一,否则将新词插入到查找表中并设使用次数为一次。显然,这个查找表是不断扩张的。 /49第5页/共49页平均查找长度: 为了确定数据元素在查找表中的位置,需要将给定值和表中的数据元素的关键字进行比较的次数的期望值。平均查找长度ASL的计算方法为: 其中: n 为表长;Pi为查找第i个元素的概率。Ci为找到该记录时,曾和给定值比较过的数据元素的个数。 在等概率条件下(Pi=1/n)这时平均查找长度为:《软件技术基础》电子教案/49查找表定义 第6页/共49页#define maxsize 100/*查找表最大长度 */typedef int KeyType; /*整型*/ 涉及的数据记录至少含有一个关键字段(域):typedef struct { KeyType key; ………}DataType;typedef struct { DataType r[maxsize];/* 数据元素存储空间 */ int length;/* 表的长度 */}Sqlist;《软件技术基础》电子教案/49线性表的查找第7页/共49页常见的线性表查找算法顺序查找 折半查找 分块查找 《软件技术基础》电子教案/49顺序查找第8页/共49页顺序查找改进算法:int SeqSearch(Sqlist s,KeyType k){/* 在表s中顺序查找关键字k,若查找成功,则函数值为该元素在表中的位置,若查找失败,返回-1。*/ int i; for (i=0 ; is.length ; i++) if(s.r[i].key==k) return(i);/* 查找成功 */ return(-1);/* 查找失败 */}思考:此算法的效率能提高吗?/49顺序查找第9页/共49页顺序查找改进算法:int SeqSearch_gai(Sqlist s,KeyType k){ int i; ; s.r[-1].key=k;/* 设置前哨站 */ while (s.r[i].key!=k)/* 从表尾开始向前扫描 */ i--; return(i);} 请比较这两个算法,由于改进后的算法不需要判断当前下标是否出界,时间效率几乎提高了一倍.顺序查找的平均查找长度为 /49iiiii找64-1 0 1 2 3 4 5 6 7 8 9 10例 5 13 19 21 37 56 64 75 80 88 92第10页/共49页64比较次数=5比较次数:查找第n个元素: 1查找第n-1个元素:2……….查找第1个元素:n查找第i个元素:n+1-i查找失败:n+1监视哨《软件技术基础》电子教案/49有序表的查找 第11页/共49页 前提:表中的结点按关键字递增有序 首先将待查值k和表中间位置上的结点关键字进行比较,若两者相等,则查找成功; 否则,若k值小,则在表的前半部分中继续利用折半查找法查找,若k值大,则在表的后半部分中继续利用折半查找法查找 这样,经过一次关键字比较缩小一半的查找区间,如此进行下去,直到查找到该关键字或查找失败。《软件技术基础》电子教案/4
您可能关注的文档
- 数量积与向量积 .pptx
- 遗传率的计算.pptx
- 立式压力蒸汽灭菌器.pptx
- 青岛科学四年级上册水变咸了.pptx
- 雷达速检测原理与实际应用.pptx
- 时域仿真结果.pptx
- 厦大中级宏观经济学.pptx
- 英语基础模块预备级unit.pptx
- 陋室铭爱莲说复习解析.pptx
- 利用极限的基本性质和运算法则.pptx
- 中国稀土控股有限公司环境、社会及管治报告 2017.pdf
- Classified Group(Holdings)Limited环境、社会及管治报告截至二零一七年十二月三十一日止.pdf
- 大自然家居控股有限公司环境、社会及管治报告2017.pdf
- 皇朝家俬控股有限公司二零一七年环境、社会及管治报告.pdf
- 福泽集团控股有限公司二零一七年环境、社会及管治报告.pdf
- 北斗嘉药业股份有限公司二零一七年度环境、社会及管治报告.pdf
- 科劲国际(控股)有限公司2017年环境、社会及管治报告.pdf
- 哈尔滨电气股份有限公司2017环境、社会及管治报告.pdf
- 华津国际控股有限公司二零一七年环境、社会及管治报告.pdf
- 岁宝百货控股(中国)有限公司2017 环境、社会及管治报告.pdf
最近下载
- GB∕T 19292.1-2018 金属和合金的腐蚀 大气腐蚀性 第1部分:分类测定和评估(高清版).pdf
- SPSS在调查研究中的应用解析.pptx VIP
- 22J403-1 楼梯 栏杆 栏板一.docx VIP
- QC小组活动成果报告—降低空气压缩机组故障次数.docx
- !24J306图集窗井、设备吊装口、排水沟、集水坑.pdf VIP
- 基于大数据处理的农产品数据分析方法及云平台.pdf VIP
- 社交礼仪(多选题)题库.pdf VIP
- 本科毕业论文机械专业煤泥烘干机毕业设计.doc
- 2025年江苏省淮安市洪泽区小升初数学模拟试卷附答案解析.pdf
- 22J403-1 楼梯 栏杆 栏板一 (1).docx VIP
文档评论(0)