- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 计算机软件基础 第四章 查找与排序 计算机软件基础 4.1 查找与排序概述 4.2 线性表上的查找 4.3 二叉树上的查找 4.4 哈希查找 4.5 直接插入排序 4.6 交换排序 4.7 选择排序 4.8 多关键字排序 本章内容 4.1 查找与排序概述 1.与查找有关的概念 (1) 查找:又称检索,是指在大量数据中寻找关键字值等于给定值的记录。 (2) 主关键字:指在组成记录的若干个数据项中,能够唯一标识一条记录的数据项。 (3)次关键字:指在组成记录的若干个数据项中,不能唯一标识一条记录的数据项。 计算机软件基础 ? ? ? ? (4) 平均查找长度(Average Search Length)指查找过程中,对于查找关键字进行比较的平均比较次数,记为ASL。其计算公式如下所示: 其中,pi为查找第i个元素的概率, ci为查找第i个元素所需进行的比较次数。通常认为查找每个元素的概率相等,即p1 = p2 = … = pn =1/n。 计算机软件基础 注意!!:本章所介绍的各种查找方法都是基于主关键字的查找。 ? ? ? ? 2.与排序有关的概念 (1)排序:指将一组记录按照指定关键字大小递增(或递减)的次序排列起来。 (2)稳定性:若待排序的一组记录中存在多个关键字值相同的记录,如果使用某种排序算法进行排序后,相同关键字值的多个记录的相对次序与排序前相比没有改变,则称此排序算法具有稳定性。 计算机软件基础 ? ? ? ? 4.2 线性表的查找 查找方法: 顺序查找 二分查找 分块查找 共同点: 都是在顺序存储的线性表上进行查找。 假设后面算法涉及的线性表的类型定义如下(假设关键字类型为int型): struct ElemType { int key; datatype other;}; ? ? ? ? 注意:为了符合习惯,后面顺序线性表查找和排序算法中,元素在数组中的存储位置从1开始。 计算机软件基础 一. 顺序查找 1.基本思想 从线性表的表尾到表头(从后往前),或者从线性表的表头到表尾(从前往后),依次将每个元素的关键字值和给定关键字值相比较,寻找关键字值与给定关键字值相等的元素。若找到满足条件的元素,则查找成功;若查找完整个线性表都找不到满足条件的元素,则查找失败。 ? ? ? ? 计算机软件基础 ? ? ? ? 二.算法描述 int SeqSearch(SeqList *L,int x) /*在线性表上查找关键字为x的元素*/ { int i; L-list[0].key=x; /*设置监视哨*/ i=L-leghth; /*从表尾开始向前扫描*/ while(L-list[i].key!=x) i--; return i; /*若查找成功,返回元素所在的位置;若查找失败,则返回0值*/ } /*seqsearch*/ 3. 算法说明 在算法中,线性表中的元素存放于数组r的下标为1~ n的数组元素中,为了避免每次比较时都要判断条件(i0)以防数组下标越界,因此设置了数组元素r[0]充当“监视哨”。 4. 算法分析 当查找成功时,若所查元素为r(n),只需一次比较;若所查元素为r(1),需要n次比较;若所查元素为r(i),则需n-i+1次比较。因此在等概率条件下查找成功的平均查找长度为: 计算机软件基础 ? ? ? ? 计算机软件基础 注意:! 二分查找算法在使用时必须满足两个前提条件: 1. 线性表中的元素必须按照查找关键字排列有序; 2. 线性表必须以顺序存储方式存储。 ? ? ? ? 二. 二分查找 计算机软件基础 二. 二分查找 1.基本思想 找到查找区间的中间位置,用此位置上元素的关键字值与待查关键字值相比较。若相等,则查找成功;否则,将查找范围缩小到半个区间,只在可能存在待查元素的前半区间或后半区间进行查找。重复上述过程,直到查找成功或查找范围缩小到空。 ? ? ? ? 计算机软件基础 二分查找过程示例 下面是在一个升序线性表{18,26,32,45,52,66,80,91}上查找关键字为80的元素的二分查找过程。 18 26 32 45 52 66 80 91 low=1 mid=4 high=8 ? ? ? ? 8045 到右区间查找 改变low 计算机软件基础 二分查找过程示例 下面是在一个升序线性表{18,26,32,45,52,66,80,91}上查找关键字为80的元素
您可能关注的文档
- 机械制图第10-13讲-组合体.ppt
- 机械制造工程之机床2.ppt
- 基本日语字母五十音图.doc
- 基因表达调控09.ppt
- 基因工程笔记总结.doc
- 基于Fusion的无线扩散炉温度自动监控系统.doc
- 激光原理复习题.doc
- 极限脱出 全结局攻略.doc
- 集合及子集的有关概念.doc
- 几何变换 轴对称变换(无答案).doc
- 吉林省白山市五校2024-2025学年高一下学期期末联考 数学 Word版含解析.doc
- 江苏省常州市2024-2025学年高二下学期期末考 数学 Word版含解析.doc
- 考点 15 非谓语动词(三)(核心考点精讲练)(原卷版全国通用).doc
- 考点 03 代词(核心考点精讲练)(原卷版)高考英语复习考点帮(全国通用).doc
- (16页PPT)互联网旅游APP商业计划书.pptx
- (14页PPT)能量石情景故事.pptx
- (14页PPT)污水处理厂第三方运营商业计划书.pptx
- (16页PPT)时间介词盖章互动游戏12张.pptx
- (16页PPT)某著名企业北京视美乐为视听研发及生产商构建现代管理平台项目建议书.ppt
- (15页PPT)转盘Routines+时间答题.pptx
最近下载
- 江苏海洋大学《高等数学(II)》2025 - 2026学年第一学期期末试卷.docx
- 单轨吊标准图集.pdf VIP
- 新修订《交通运输行政执法程序规定》全文学习解读PPT课件(带内容).pptx VIP
- 饮茶溯源.ppt VIP
- 2025秋教科版(2024)小学科学二年级上册教学计划及进度表(2025-2026学年第一学期).docx VIP
- 网络编辑:内容规划 文案创作 运营推广299.pptx VIP
- 适用丝印移印两种印刷方式的环保油墨及其制备方法.pdf VIP
- 2025年学校(中小学)第十届“学宪法、讲宪法”知识竞赛题库及答案.doc
- T_GDPHA 003—2025(医院全光网络建设规范).pdf
- 我国犯罪心理测试技术的应用与完善(行业资料).doc VIP
文档评论(0)