《冒泡排序算法实现.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《冒泡排序算法实现

冒泡排序的算法及其程序实现 浙江省慈溪中学 施迪央 教学分析: 本节课是浙江教育出版社出版的普通高中课程标准实验教科书《算法与程序设计》第二第3节以及第五章第3节的部分教学内容。 一组不长的数据(如5个),从小到大排序,对学生来说是一件容易的事情,但他们并不知道计算机是怎么实现排序的,同时他们也没见识过计算机对大量数据(如1000个)的排序。学习排序有助于学生对计算机工作原理的认识。冒泡排序对学生来说初次接触,但前面的枚举算法和解析算法的部分内容对学习排序有一定的帮助,如数组变量的定义及使用方法、双重循环的使用方法及特点以及如何通过键盘输入一批数据(即text1_keypress()事件)在前面都已涉及,冒泡排序的学习又可以巩固前面的知识。 关于冒泡排序的算法及程序实现我安排了3个课时,本案例是在教室内完成的2节随堂课,第3课时安排学生上机实践:对键盘输入的一批数据进行冒泡排序。 教学目标: 1、知识与技能: 了解排序及冒泡排序的概念及特点 掌握冒泡排序算法的原理 初步掌握冒泡排序的程序实现 2、过程与方法: 理解冒泡排序的分析过程,并初步掌握用冒泡排序算法来设计解决简单的排序问题 3、情感态度与价值观: 通过冒泡排序算法的分析过程,培养学生思维的严谨性以及用科学方法解决问题的能力 使学生深入理解计算机的工作原理,激发了学生学习程序兴趣。 教学重点: 冒泡排序算法的原理 教学难点: 分析冒泡排序的实现过程 教学策略: 讲授法与探究法。教师讲授、学生听讲,教师提问、学生动脑,层层深入,步步为营,一切水到渠成。 教学准备: 编写好手动输入一批的数据的冒泡排序的程序 编写好计算机自动生成数据的冒泡排序的程序 课堂中使用的教学课件 教学过程: 一、问题引入 问题一:什么是排序? 所谓排序,把杂乱无章的一列数据变为有序的数据,比如7,3,4,8,1这五个数据从小到大排序,结果是1,3,4,7,8,我们很容易排出来。那么电脑是怎么进行排序的呢? 问题二:一批数据在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、冒泡排序(bubble sort)的思想 在一列数据中把较小的数据逐次向上推移的一种技术。冒泡排序把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小的数据换到上面的一个元素中。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工。当第一遍加工完成时,最小数据已经上升到第一个元素位置。然后对余下的n-1个元素重复上述处理过程,直至最后进行余下两个数据的比较和交换。 2、提出待排序的任务 有下面一组数据,7、3、4、8、1,用冒泡法(逐次向上推移)实现从小到大的排序,假如这5个数据分别用数组变量a的5个数组元素a(1)、a(2)、a(3)、a(4)、a(5)来存储 3、冒泡排序的算法及程序初步实现 (1)第一遍加工: 演示:打开冒泡.swf,演示如下图1 图1 问题一:最小数据1是如何进行逐次向上推移到达第一个数据位置的,即a(1)=1? 演示如下图2: 第五位置(即a(5))的1与第四位置(即a(4))的8比较,交换; 第四位置(即a(4))的1与第三位置(即a(3))的4比较,交换; 前三位置(即a(3))的1与第二位置(即a(2))的3比较,交换; 第二位置(即a(2))的1与第一位置(即a(1))的7比较,交换; 图2 说明:当第五个位置的数据1从上升到第一个位置,称为第一遍加工 问题二:第一遍加工的结果? a(1)=1,a(2)~a(5)为无序区域。 问题三:比较了几次?交换了几次?比较交换的条件是什么? 比较4次,交换4次,即相邻位置的两个数据比较,如果a(j)a(j-1),则交换 问题五:4次比较与交换,可以用VB的哪个算法模式来实现?如何描述 For 循环+If选择 根据代码解释:最末位置的数据与前面相邻位置的数据发生比较,如果小于前面位置的数据,则交换;重复这一过程,直到处理完第二个位置的数据与第一个位置的数据为止,完成第一遍加工 问题六:比较下面两组代码,你认为哪组好?为什么?

文档评论(0)

tiantiande + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档