1、C+程序设计冒泡排序 一、教材分析一、教材分析: 排序算法是程序设计中的重要算法, 要求学生了解什么是冒泡排序算法及排序过程和原 理,为以后章节的程序设计打下基础。 二、学生分析:二、学生分析: 本课程针对初中一年级 C+拓展课课程的学生,这些学生是对 C+程序设计有浓厚的兴 趣,对于数字的比较学生已经掌握了两两比较,而目前已经学习到了一维数组,对于多数字 的比较学生还没有头绪, 而本节冒泡排序较抽象难理解, 所以本节课只是让学生理解什么是 冒泡排序,弄明白冒泡排序的过程。而对于在程序设计中具体如何用冒泡排序,将在下一节 课中重点介绍。 三、教学目标:三、教学目标: 1、了解并理解什么是冒泡排
2、序,掌握外层循环的次数和内层循环的次数。 2、以问题的形式来培养学生独立思考问题的能力 3、学生以小组讨论的形式来回答问题,培养学生合作、探究的能力 四、教学过程:四、教学过程: (一)游戏导入 教师:今天请同学们上台来玩个游戏,请五位同学(依次拿着一个标有序号的帽子)坐 好,请给他们按照从矮到高排列。 请学生上来说一说怎么排列。 提出要求:两两比较。 板书:冒泡排序 (二)引出冒泡排序 请学生朗读冒泡的概念 (三)完成练习一: 比较 5 个数:9 5 3 8 1 第一趟:59381 53981 53891 53819 学生书写:第二趟,第三趟,第四趟 教师提问:每一趟比较的次数。 请学生观察
3、这次排序的结果。找到什么规律了吗? 请几位同学说一说。 完成课题练习: 1、 如果用冒泡排序法对 10 个数排序,要进行 趟排序。 2、如果一趟排序中,在 6 个数中确定最大数的位置,要比较 次。最多需要交 换 次,最少交换 次。 (四)提出猜测并验证 这一组数据用冒泡排序法排序,猜测一下它会有几趟?每趟几次? 学生进行思考,并回答。 10 个数需要进行 趟排序? 第一趟需要排序 次? 第二趟需要排序 次? 第三趟需要排序 次? 第 i 趟需要排序 次? 第十趟需要排序 次? 教师:每一趟参与排序的元素有哪些? 学生回答。 教师进一步提问:如果个数 n 个的话,第 i 趟进行了多少次排序?参与
4、的元素有哪些? 追问:每一趟排序是否有相似处? 学生想一想,并回答。 发现每一趟参与排序的元素都不一样,逐个减少。 和谁有关?和 i 有关。 (五)完成内循环 那我们是不是只要写出 i 趟的排序代码,就可以通过控制 i 的大小,循环排序出另外几 趟的代码? 起始:j=1;j=n-i;j+ 想想如何进行两数比较。 请同学们完成学习单,并小组内讨论结果,每组派一位上来书写答案。 点评学生书写是否正确。 (六)完成外循环 教师:那么如何控制 i 的变化呢?首先,i 的范围是多少? 请每组派一位同学上黑板写一下外层循环,For( ; ; ) 教师讲解是否正确。 (七)完成最终的两层循环嵌套 教师:写出数组 a1-an的冒泡排序从小到大的程序代码。 同学们讨论,并把最后答案写在学习单上,教师用实物投影展示。 (八)总结 教师:今天的收获,什么是冒泡排序?并在课后完成拓展练习,从大到小排序。