- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]5 数据结构_4
数据结构课程的内容 第二章 数据结构 2.5 查找和排序 2.5.1 查找 一、线性查找( 又称顺序查找) 二、对分查找(又称二分查找或折半查找) 折半查找举例: 请注意:ASL的含义是“平均每个数据的查找时间”,而前式是n个数据查找时间的总和,所以: 三、分块查找(索引顺序查找) 分块查找过程举例: 课堂练习: 题:对序列(8,10,15,26,35,47,59,63)进行折半查找15,要经过 次比较。 A、2 B、3 C、4 D、5 四、散列查找(又称哈希/hash查找) 1)哈希表的概念 例2 : 2)哈希函数的构造方法 冲突现象举例: 在哈希查找方法中,冲突是不可能避免的,只能尽可能减少。 3)冲突处理方法 开地址法简介 例: 讨论1: 先讨论: 4. 什么叫内部排序?什么叫外部排序? 一、选择排序 1)简单选择排序 例:关键字序列T= (21,25,49,25*,16,08),请给出简单选择排序的具体实现过程。 简单选择排序的算法如下: 二、插入排序 1)线性(直接)插入排序 例2:关键字序列T= (21,25,49,25*,16,08),请写出直接插入排序的具体实现过程。 线性插入排序算法的实现: 课堂练习: 题:对n个数列排序,采用线性插入排序的方法,要进行 趟排序? A、n B、n-1 C、n+1 D、(n-1)/2 2) 折半插入排序 三、交换排序 1) 冒泡排序 冒泡排序算法的实现: for( i=1; in; i++ ) //共进行n-1趟比较 { for( j=1; j=n-i ; j++) //进行第i趟比较时,共进行 n-i 次比较 if(A[j].keyA[j+1].key) //交换排序 { t=A[j]; A[j]=A[j+1]; A[j+1]=t; } } 冒泡排序的算法分析 课堂练习: 题:对n个记录进行冒泡排序,最少的比较次数为 ,最少的交换次数为 。 2) 快速排序 例1:关键字序列 T=(21,25,49,25*,16,08),请写出快速排序的算法步骤。 例2:关键字序列 T=(21,25,49,25*,16,08),计算机如何实现快速排序算法的某一趟过程? 例3:以关键字序列(256,301,751,129,937,863,742,694,076,438)为例,写出执行快速算法的各趟排序结束时,关键字序列的状态。 讨论2. “快速排序”是否真的比任何排序算法都快? 思考:若初始记录基本有序,选用哪种排序方法比较适合? 各种内部排序方法的比较 原始序列: 21,25,49,25*,16,08 第1趟 第2趟 第3趟 第4趟 第5趟 08,25,49,25*,16,21 08,16, 49,25*,25,21 08,16, 21,25*,25,49 08,16, 21,25*,25,49 08,16, 21,25*,25,49 时间效率: O(n2)——虽移动次数较少,但比较次数仍多。 空间效率:O(1)——用到1个temp单元 算法的稳定性:不稳定——因为排序时,25*到了25的前面。 最小值 08 与T[1]交换位置 Void SelectSort(SqList L ) {for (i=1; ilength; ++i) { j = SelectMinKey(L,i); if( i!=j ) L[i] ?L[j]; } } //对顺序表L作简单选择排序 //选择第i小的记录,并交换到位 //在r[i…length]中选择最小记录并定位j //与第i个记录交换 讨论:能否利用(或记忆)首趟的n-1次比较所得信息,从而尽量减少后续比较次数呢? 答:能! 堆排序思想 插入排序的基本思想是: 插入排序有多种具体实现算法: 1)线性 (直接)插入排序 2) 折半插入排序 每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。 简言之,边插入边排序,保证子序列中随时都是排好序的。 新元素插入到哪里? 例1:关键字序列T=(13,6,3,31,9,27,5,11), 请写出直接插入排序的中间过程序列。 【13】, 6, 3, 31, 9, 27, 5, 11 【6, 13】,
您可能关注的文档
- [工学]4 它生沉积岩类.ppt
- [工学]4-2 正交试验设计与均匀设计.ppt
- [工学]4-1CAN.ppt
- [工学]4-4定积分的计算.ppt
- [工学]421碱金属和碱土金属元素.ppt
- [工学]41 基因指导蛋白质的合成1.ppt
- [工学]43 电感式传感器.ppt
- [工学]46寸3X5超窄边液晶拼接屏方案--上海济丽.doc
- [工学]4CAPP!.ppt
- [工学]4h第4章 选择结构程序设计.ppt
- 军工项目实施中的工序协调措施.docx
- 2006年北京高考文综真题及答案.pdf
- 2001年福建高考文科综合真题及答案(图片版).pdf
- 小学历史课中历史文献对历史研究的重要性分析教学研究课题报告.docx
- 《基于 BIM 的建筑项目全生命周期项目管理中的项目管理科学研究》教学研究课题报告.docx
- 小学科学课程中科学实验教学对科学探究能力的培养研究教学研究课题报告.docx
- 高中历史文献研读对学生历史研究能力的培养研究教学研究课题报告[001].docx
- 《农村金融市场利率定价机制改革与农村金融政策支持体系完善研究》教学研究课题报告.docx
- 高中心理健康课堂教学中问题驱动的案例分析与实践教学研究课题报告.docx
- 2.4.2 “种”是生物分类的基本单位说课稿-2024--2025学年济南版生物七年级上册.docx
最近下载
- DB4403_T 77-2024 电动汽车充电安全监控平台数据采集规范.docx
- 基层网络舆情监测工作的实践与思考.docx VIP
- 加强政治机关建设提升机关工作质量.pptx VIP
- 作业3:《windows服务器基础配置与局域网组建》工学一体化课程学习任务设计.docx VIP
- 某小区供配电系统设计本科生毕业设计论文.doc VIP
- DG_TJ 08-2242-2023 民用建筑外窗应用技术标准.docx
- 胶带简介介绍.ppt
- 文化创意产品设计开发合同.doc VIP
- 瓦工:高级瓦工(强化练习).docx VIP
- 作业11:《windows服务器基础配置与局域网组建》工学一体化课程教学进度计划表.docx VIP
文档评论(0)