冒泡排序课件_第1页
冒泡排序课件_第2页
冒泡排序课件_第3页
冒泡排序课件_第4页
冒泡排序课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章排序算法

——冒泡排序情景:观察水中的气泡往上冒的情景,有什么特点呢?冒泡原理冒泡排序和气泡在水中不断往上冒的情况有些类似。气泡大的(大的数据)在下面,气泡小的(小的数据)在上面。冒泡排序的基本原理对存放原始数据的数组,按从前往后的方向进行多次扫描,每次扫描称为一趟。当发现相邻两个数据的次序与排序要求的大小次序不符合时,即将这两个数据进行互换。这样,较小的数据就会逐个向前移动,好象气泡向上浮起一样。例:用冒泡排序的方法将下面一组无序数组排成从小到大的顺序。{49,38,65,97,76,13,27,49}分析:首先为了方便分析,我们把所给的数据先用一个表格列出来,如下:对比原数据经过第一趟排序,实现了什么目的?第一趟排序,一共进行了多少次比较?4927137697653849数据87654321序号49>38,交换位置原数据和序号序号12345678数据4938659776132749第一趟排序的步骤:序号12345678数据3849659776132749序号12345678数据3849659776132749序号12345678数据3849659776132749序号12345678数据3849657697132749序号12345678数据3849657613972749序号12345678数据3849657613279749序号12345678数据3849657613274997经过第一趟排序,把最大的数沉到最底了!49<65,保持不变65<97,保持不变97>76,交换位置97>13,交换位置97>27,交换位置97>49,交换位置经过第二趟排序,实现了什么目的?经过第二趟排序,把第二大的数沉到倒数第二个位置了!9749271376654938数据87654321序号38<49,保持不变第一趟排序后的数据和序号第二趟排序的步骤:序号12345678数据384965761327499749<65,保持不变65<76,保持不变76>13,交换位置76>27,交换位置76>49,交换位置序号12345678数据3849657613274997序号12345678数据3849657613274997序号12345678数据3849657613274997序号12345678数据3849651376274997序号12345678数据3849651327764997序号12345678数据384965132749769776<97,保持不变序号12345678数据3849651327497697观察原数据与第一、二趟排序后的数据序号12345678数据3849657613274997序号12345678数据3849651327497697序号12345678数据4938659776132749问:为了使这一组无序数组完全按照要求排成从小到大我们还需不需要再继续排序呢?问:那么我们预计最多一共要经过多少次排序呢?序号12345678数据3849132749657697序号12345678数据4938659776132749序号12345678数据3849657613274997序号12345678数据3813274949657697序号12345678数据1327384949657697序号12345678数据3849651327497697序号12345678数据1327384949657697序号12345678数据1327384949657697初始1趟2趟3趟4趟5趟6趟7趟例题:下面我们继续考虑,将我们刚才排序的全过程用算法流程图表示出来。我们把它分成几步来做,第一步,先把第一趟的排序用流程图描述出来。R[1]:=R[2]t:=R[1]R[1]:=R[2]R[2]:=t开始1.画出第一趟排序的算法流程图:假设该数据列为R[1],R[2],R[3],R[4],R[5],R[6],R[7],R[8]第一步做什么?R[1]>R[2]是否如何交换数据,这样行吗?R[2]>R[3]是否t:=R[2]R[2]:=R[3]R[3]:=t…不断的这样画下去要画多少个类似的选择结构?有没有办法让流程图更加简洁呢?这样交换数据,会有什么问题?分析:R[1]>R[2]R[1]=R[2]是否t=R[1]R[1]=R[2]R[2]=t否是i:=i+1结束开始R[1]>R[2]R[1]=R[2]是否t=R[1]R[1]=R[2]R[2]=ti:=1R[i]>R[i+1]i>7t:=R[i]R[i]:=R[i+1]R[i+1]:=t分析:1.画出第一趟排序的算法流程图:用简洁的循环结构进行表示否是i:=i+1结束开始R[1]>R[2]R[1]=R[2]是否t=R[2]R[1]=R[2]R[2]=ti:=1R[i]>R[i+1]t:=R[i]R[i]:=R[i+1]R[i+1]:=ti>7分析:后面的排序只要按照这种方法不断进行就行了。2、按照这种画法第二趟、第三趟、第四趟排序的流程图怎样画?怎样把整个冒泡排序的流程图画出来?那么同样的结构要进行多少次呢?有没有办法让流程图更加简洁呢?是3、怎样把整个冒泡排序的流程图画出来?开始结束j>7j:=1否j:=j+1是i>7否i:=1i:=i+1是否R[i]>R[i+1]t:=R[i]R[i]:=R[i+1]R[i+1]:=t分析:这是一个两重循环结构课堂思考:在我们刚才的算法流程图中,每一趟的排序我们都进行了7次,是否每一趟的排序都需要进行7次比较呢?观察原数据与第一、二趟排序后的数据序号12345678数据3849657613274997序号12345678数据3849651327497697序号12345678数据4938659776132749我们知道经过第一趟的排序之后,最大的一个数已经排到最后了这样在进行第二趟排序时有没有必要再对第7、8个数据再进行排序呢?扩展:1234’322964783445冒泡排序也可以从后往前进行,过程演示如下:小结:

本节课主要学习了冒泡排序的基本原理及其算法流程图。其中数组和双循环是我们本节课使用较多的一种结构。应用到本节知识的实例有很多,比如:打印九九乘法口诀表、彩票数字选择器、工作表安排等等。课后作业:在刚才的冒泡排序中是否一定要进行7趟?针对这个问题你有什么好的方法对我们的算法再进行优化?

下课了。。。休息一会儿。。。追说课一、说课题课题名称:冒泡排序选用教材:《数据结构》

西安交通大学出版社适用范围:计算机及相关专业课题位置:第9章排序冒泡排序二、说对课题的分析与处理

1、地位作用2、目标要求3、重点难点排序的方法设计中包含的丰富的程序设计技巧,这对初学者提高软件设计能力帮助很大。而且本知识点也是后续学习“查找”的一个基础。(1)认知方面:掌握冒泡排序的原理和流程图;(2)技能方面:掌握冒泡排序的优化方法;(3)情感方面:培养学习乐趣和解决实际问题应用的能力。(1)重点:冒泡排序的原理;(2)难点:冒泡排序的优化方法。三、教学对象分析1、本课题教学对象2、学生特点教育技术学专业本科大二学生(1)具备计算机的基础知识;(2)具备基本的C程序的阅读能力;(3)但是较计算机专业的学生来说,动手和独立思考的能力教差。

四、说教学策略1、教学方法2、学法指导

(1)讲解法——帮助学生理解较为抽象的课堂知识(2)举例法——通过举例,深入理解理论知识(3)讨论法——针对课堂问题,讨论优化算法的策略(4)情景教学法倡导“自主、合作、探究”的学习方式,具体的学法是讨论法。五、说讲授程序

1、新课导入

结合之前学习的有关排序的概念、数组的概念以及循环算法的概念,并采用情景教学的方法,引入冒泡排序的基本原理。

这样导

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论