冒泡排序算法课件.ppt_第1页
冒泡排序算法课件.ppt_第2页
冒泡排序算法课件.ppt_第3页
冒泡排序算法课件.ppt_第4页
冒泡排序算法课件.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、1,冒泡排序算法,株洲市第二中学 信息技术组 刘辉琴 杜新宇,2,将下面一组无序的数据从小到大排列。, 49,38,65,97,76,13,27,49 ,数据如何存储?,活动:,一维数组,定义一维数组: int r8; 数组元素为: r0, r1, r2, r3, r4, r5, r6, r7,按照计算机的工作方式将下面一组无序的数据从小到大排列。,3,对比原数据经过第一趟排序,实现了什么目的?,第一趟排序,一共进行了多少次比较?,4938,交换位置,原数据和序号,第一趟排序的步骤:,4965, 保持不变,6597, 保持不变,9776, 交换位置,9713, 交换位置,9727, 交换位置,

2、为了方便分析,我们把数组r中的元素先用一个表格列出来,如下:,9749, 交换位置,4,经过第二趟排序,实现了什么目的?,3849,保持不变,第一趟排序后的数据和序号,第二趟排序的步骤:,4965, 保持不变,6576, 保持不变,7613, 交换位置,7627, 交换位置,7649, 交换位置,7697, 保持不变,5,观察原数据与第一、二趟排序后的数据,我们预计最多一共要经过多少趟排序呢?,6,初始,1趟,2趟,3趟,4趟,5趟,6趟,7趟,7,描述算法:,试着将我们刚才排序的全过程用算法流程图表示出来。,我们把它分成几步来做。,8,t=r0 r0 =r1 r1 = t,一.画出比较r0与

3、r1 的算法流程图:,第一步做什么?,如何交换数据?,t=r1 r1 =r2 r2 = t,不断的这样画下去要画多少个类似的选择结构?,有没有办法让流程图更加简洁呢?,分析:,继续:,if ( ) ,根据流程图完善代码:,9,否,是,i+,开始,i=0,ri ri +1,t=ri ri =ri +1 ri +1 = t,二.画出第一趟排序的算法流程图: 用简洁的循环结构进行表示,for( ; ; ) if ( ) ,根据流程图完善程序:,10,分析:后面的排序只要 按照这种方法不断进行就 行了。,按照这种画法第二趟、第三趟、第四趟排序的流程图 怎样画?怎样把整个冒泡排序的流程图画出来?,那么同

4、样的结构要进行多少次呢?,有没有办法让流程图更加简洁呢?,11,三:画整个冒泡排序的流程图。,是,分析:这是一个两重循环结构。,否,12,结 束,j=6,输出数据,i+,i=6-j,j+,main() int r8; int i,j,t; printf(Input 8 numbers:n); for(i=0;i8;i+) scanf(%d, ,13,冒泡排序,对相邻两个数进行比较,将较小的调到前面,两两比较一轮之后,最大的一个数被放置在最后面;接着从头开始重复执行以上操作,次大的数被放置在倒数第二位,依次类推,数列由后往前逐渐成型。,基本思想:,14,冒泡排序 选择排序 插入排序 ,排序算法,15,小结:,1、冒泡排序的基本原理、算法流程图及程序实现。 2、一维数组 3、双重循环,参考程序:,main() int r8;int i,j,t; printf(Input 8 numbers:n); for(i=0;iri+1) t=ri; ri=ri+1; ri+1=t; printf(

温馨提示

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

评论

0/150

提交评论