冒泡排序算法实现

上传人:kms****20 文档编号:39596768 上传时间:2018-05-17 格式:DOC 页数:11 大小:523KB
返回 下载 相关 举报
冒泡排序算法实现_第1页
第1页 / 共11页
冒泡排序算法实现_第2页
第2页 / 共11页
冒泡排序算法实现_第3页
第3页 / 共11页
冒泡排序算法实现_第4页
第4页 / 共11页
冒泡排序算法实现_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《冒泡排序算法实现》由会员分享,可在线阅读,更多相关《冒泡排序算法实现(11页珍藏版)》请在金锄头文库上搜索。

1、冒泡排序的算法及其程序实现冒泡排序的算法及其程序实现浙江省慈溪中学 施迪央 教学分析:教学分析: 本节课是浙江教育出版社出版的普通高中课程标准实验教科书算法与程序设计第 二第 3 节以及第五章第 3 节的部分教学内容。 一组不长的数据(如 5 个) ,从小到大排序,对学生来说是一件容易的事情,但他们并 不知道计算机是怎么实现排序的,同时他们也没见识过计算机对大量数据(如 1000 个)的 排序。学习排序有助于学生对计算机工作原理的认识。冒泡排序对学生来说初次接触,但 前面的枚举算法和解析算法的部分内容对学习排序有一定的帮助,如数组变量的定义及使 用方法、双重循环的使用方法及特点以及如何通过键盘

2、输入一批数据(即 text1_keypress() 事件)在前面都已涉及,冒泡排序的学习又可以巩固前面的知识。 关于冒泡排序的算法及程序实现我安排了 3 个课时,本案例是在教室内完成的 2 节随 堂课,第 3 课时安排学生上机实践:对键盘输入的一批数据进行冒泡排序。 教学目标:教学目标: 1、知识与技能: 了解排序及冒泡排序的概念及特点 掌握冒泡排序算法的原理 初步掌握冒泡排序的程序实现 2、过程与方法: 理解冒泡排序的分析过程,并初步掌握用冒泡排序算法来设计解决简单的排序问题 3、情感态度与价值观:通过冒泡排序算法的分析过程,培养学生思维的严谨性以及用科学方法解决问题的能力 使学生深入理解计

3、算机的工作原理,激发了学生学习程序兴趣。 教学重点:教学重点: 冒泡排序算法的原理 教学难点:教学难点: 分析冒泡排序的实现过程 教学策略:教学策略:讲授法与探究法。教师讲授、学生听讲,教师提问、学生动脑,层层深入,步步为营, 一切水到渠成。 教学准备:教学准备: 编写好手动输入一批的数据的冒泡排序的程序 编写好计算机自动生成数据的冒泡排序的程序 课堂中使用的教学课件 教学过程:教学过程: 一、问题引入一、问题引入 问题一:什么是排序? 所谓排序,把杂乱无章的一列数据变为有序的数据,比如 7,3,4,8,1 这五个数据从 小到大排序,结果是 1,3,4,7,8,我们很容易排出来。那么电脑是怎么

4、进行排序的呢?问题二:一批数据在 VB 中如何存储的?比如如何存储六位裁判为一位运动员评出的分数? 用数组变量来存储一批类型、作用相同的数据,如分别用 d(1),d(2),d(3),d(4),d(5),d(6)来 存储六位裁判给出的分数。问题三:如果运动员的最后得分是从这 6 个分数中去掉最高分与最低分后的平均分,你认 为怎么得到? 调整数组 d 中所有数据的存储位置,使最小的数据存储在 d(1)中,最大的数据存储在 d(6)中,使所有数据满足:d(1) d(2) d(3) d(4) d(5) d(6) 二、冒泡排序的算法及程序实现二、冒泡排序的算法及程序实现 1、冒泡排序(、冒泡排序(bub

5、ble sort)的思想)的思想 在一列数据中把较小的数据逐次向上推移的一种技术。冒泡排序把待排序的 n 个元素的 数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元 素中的数据,将较小的数据换到上面的一个元素中。重复这一过程,直到处理完最后两个 元素中的数据,称为一遍加工。当第一遍加工完成时,最小数据已经上升到第一个元素位 置。然后对余下的 n-1 个元素重复上述处理过程,直至最后进行余下两个数据的比较和交 换。 2、提出待排序的任务、提出待排序的任务 有下面一组数据,7、3、4、8、1,用冒泡法(逐次向上推移)实现从小到大的排序, 假如这 5 个数据分别用数组变

6、量 a 的个数组元素 a(1)、a(2)、a(3)、a(4)、a(5)来存储变量 a(1) a(2) a(3) a(4) a(5) 初始 7 3 4 8 1 结果 1 3 4 7 83、冒泡排序的算法及程序初步实现、冒泡排序的算法及程序初步实现 (1)第一遍加工: 演示:打开冒泡.swf,演示如下图 1图 1 问题一:最小数据 1 是如何进行逐次向上推移到达第一个数据位置的,即 a(1)=1? 演示如下图 2: 第五位置(即 a(5))的 1 与第四位置(即 a(4))的 8 比较,交换; 第四位置(即 a(4))的 1 与第三位置(即 a(3))的 4 比较,交换; 前三位置(即 a(3))

7、的 1 与第二位置(即 a(2))的 3 比较,交换; 第二位置(即 a(2))的 1 与第一位置(即 a(1))的 7 比较,交换;图 2 说明:当第五个位置的数据 1 从上升到第一个位置,称为第一遍加工 问题二:第一遍加工的结果? a(1)=1,a(2)a(5)为无序区域。 问题三:比较了几次?交换了几次?比较交换的条件是什么? 比较 4 次,交换 4 次,即相邻位置的两个数据比较,如果 a(j)=i+1(ji) 问题二:在通用代码中,外、内循环的意义是什么? 外循环是加工的遍数,n 个数据需要加工 n-1 遍内循环是每一遍的具体加工过程 问题三:如何实现 a(j)与 a(j-1)的交换?

8、使用什么语句 学生回答:通过第三个变量 temp6、演示冒泡排序算法、演示冒泡排序算法.swf,观察流程图,体验流程的执行过程,并请学生用语言表达程 序运行过程Temp=A(j) A(j)=A(j-1) A(j-1)=TempFor i=1 to n-1for j=n to i+1 step -1if a(j) a(J - 1) Then TEMP = a(J):a(J) = a(J - 1):a(J - 1) = TEMPEnd IfEnd IfNext JNext IFor I = 1 To cList2.AddItem a(I)Next I End Sub说明:else 后面即为降序排序,比较的条件由原来 a(J) a(J - 1)即可。 添加一窗体加载模块Sub Command1_Click() For I = 1 To c - 1For J = c To I + 1 Step -1If a(J) arrj + 1)temp= arrj;arrj = arrj+1;arrj+1 = temp; #include void show (int *p)int i=0;for (i=0 ;i pj+1)tmp = pj;pj = pj+1;pj+1 = tmp;printf(“第%2d 轮排序结束:“, i+1);show(p);return 0; 来源:考试大

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号