- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构Java语言版王学军第十章课件教学.ppt
数据结构(Java语言版) 人民邮电出版社 【内容简介】 本章重点介绍排序的基本概念、内部排序的常用排序方法及性能分析。排序是把一组任意序列数据元素按照某种数据项有序排列的过程。排序是数据处理的常用方法之一,同时也是其他许多数据操作的基础。排序分为内部排序和外部排序两种,其应用是十分广泛的,例如数据排列、数据分类等。 【知识要点】 通过学习,掌握如下内容: 插入排序中直接插入排序和希尔排序方法的思想及其程序实现; 交换排序中冒泡排序和快速排序方法的思想及其程序实现; 选择排序中直接选择排序和堆排序方法的思想及其程序实现; 归并排序的思想及其程序实现; 基数排序的思想及其程序实现。 第一节 1.实例引入 【学习任务】通过实例引入,了解排序的概念及排序过程。 对班级成绩汇总、排序等,如表10.1所示。 针对该表的每列都可以作为一个排序关键字,比如以学号升序排列或者降序排列,或者以某个成绩降序排列等等,这些排序操作都要通过某种算法来实现,从而在实际的软件应用系统中达到按照要求排序的目的。表10.1学生成绩表就是按照学号升序排列学生成绩数据,在数据库或者编辑软件(如Excel)中,可以通过选择列名对整个数据进行排序操作。 第二节 2.排序的概念 所谓排序,就是需要整理的文件或者相关数据,使之按某个类别的数据元素(或者数据项)进行递增或递减次序排列起来的过程。 在排序过程中,相关概念如下: 在排序中对应的数据元素被称为“记录”(或称为“元素”),记录(或元素)可以是单个数据构成,也可以是一组数据构成,记录的集合称为“文件”(或称为“序列”),有时在内存中的文件也常被称为“表”。 在本章学习过程中,为了更容易理解,把待排序文件或者相关数据称为“序列”,把具体数据称为“元素”。 第三节 3.排序的分类 【学习任务】了解排序的相关分类,重点理解排序的稳定性标准及其判定方式。 3.1按照存储交换分类 将排序按照存储交换可划分成内部排序和外部排序。 内部排序是指待排序文件或者相关数据的数据量较少,排序过程可以一次在内存中完成的排序。 外部排序是指待排序文件或者相关数据的数据量较大,排序过程不能一次在内存中完成,需要借助外部存储器的排序过程。 3.2 按照内部排序的过程分类 按照内部排序的实际过程划分,可分为5大类:插入排序、选择排序、交换排序、分配排序和归并排序,后面各节依次介绍。 3.3 按照排序的稳定性分类 按照排序的稳定性将排序划分为:稳定排序和不稳定排序。 稳定排序是指对待排序文件或者数据记录中,当关键字均不相同时,排序结果是惟一的,而在待排序文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录相对次序保持不变,则称这种排序方法为稳定排序。 不稳定排序是指对待排序文件或者数据记录中,对具有相同关键字的记录经过排序后,其相对次序和原来对比发生了变化,则称这种排序方法为不稳定排序。 需要注意的是,排序是否稳定是针对于所有可能出现的排序序列而言的,而不是对于某个具体排序实例而言的 第四节 4.插入排序 【学习任务】掌握直接插入排序和希尔(Shell)排序算法的思想、实现过程及性能分析,重点理解希尔(Shell)排序的实现过程。 所谓插入排序,就是指将待排序记录R插入到已经排好序的文件中,得到新序列的过程。 4.1 直接插入排序 直接插入排序是指每次将一个元素插入到已经排好序的序列中,直到结束为止。 【例10.1】将变量b插入到已经排序的a数组中。 int[] a = {10,21,35,62,85,90}; //排好序的序列 int b = 30; 步骤: (1)定义一个数组c,其元素个数比数组a多1,其定义如下: int[] c = new int[a.length + 1]; //length是数组的属性,功能是获取数组元素个数。 (2)把数组a的元素复制到数组c中,使得数组c包含数组a的所有元素,数组c的元素如下: {10,21,35,62,85,90,0} 其中:0为一个标志性数据,该标志性数据可根据需要而进行相应的设置。 (3)开始排序操作: for(int i = a.length - 1; i = 0; i--){ if(b = c[i]){ c[i + 1] = b; break; } else{ c[i + 1] = c[i]; //元素后移 } } (4)排序结果:{10,21,30,35,62,85,90} 下面通过如图10.1所示的过程描述【例10.1】的实现过程,其算法循环次数为5次,排序过程如下: 【例10.2】对待排序列{9,5,7,
您可能关注的文档
- 数据挖掘原理与SPSSClementine应用宝典第6章预测挖掘及其应用课件课件教学.ppt
- 数据结构(C/C++描述)阮宏一第6章树与二叉树课件教学.PPT
- 数据结构(C/C++描述)阮宏一第7章图课件教学.PPT
- 数据结构(第二版)郑泳方风波第三章栈和队列课件教学.ppt
- 数据结构(第二版)郑泳方风波第二章线性表课件教学.ppt
- 数据结构(第二版)郑泳方风波第六章树课件教学.ppt
- 数据结构C++版叶核亚主编第01章绪论课件教学.ppt
- 数据结构C++版叶核亚主编第02章线性表课件教学.ppt
- 数据结构C++版叶核亚主编第03章排序课件教学.ppt
- 数据结构C++版叶核亚主编第04章串课件教学.ppt
- 2025福建泉州南安市属国有企业人才引进20人笔试参考题库附答案.docx
- 2025贵州贵阳贵安市直机关遴选公务员102人备考题库最新.docx
- 2025河南能才百事通信息技术有限公司选聘6人笔试参考题库最新.docx
- 2025湖南岳阳市临湘市市场监管局从市场建设服务中心选调8人备考题库最新.docx
- 2025湖北姚家平水利枢纽开发建设有限责任公司纪检工作人员招聘1人备考题库附答案.docx
- 2025重庆银行校园招聘180人备考题库附答案.docx
- 2025浙江绍兴市人才市场服务有限公司招聘高速收费操作员(第考前自测高频考点模拟试题最新.docx
- 2025广西桂林市秀峰区纪委监委招聘10人备考题库最新.docx
- 2025年辽宁省交通建设投资集团招聘(104人)模拟试卷最新.docx
- 2025黑龙江鸡西卓运企业管理集团有限公司鸡西分公司招聘20人考前自测高频考点模拟试题最新.docx
最近下载
- 青鸟气体灭火系统全系列产品接线图.pptx VIP
- 快开门式压力容器(蒸压釜)实际操作考核课件[整理].pdf VIP
- 第10课.公共场所的文明素养(课件) 道德与法治统编版三年级上册2025.ppt
- 中国汉语《通用规范汉字表》.docx VIP
- 化水(预处理)技术规范书[1].docx VIP
- 安保服务工作标准及操作规程.pdf VIP
- DB42T 1032-2014绿色食品 猕猴桃生产技术规程.docx VIP
- 棉铃虫的综合防治方法.pptx VIP
- 2019-2020年杭州师范大学考研真题-347心理学专业综合.pdf VIP
- (高清版)DB3603∕T 1-2022 煤矿地表沉陷区监测技术指南.pdf VIP
原创力文档


文档评论(0)