诚信务实,创新进取,我们是您最好的选择!—— 中华智刊网
〖智行天下★刊心刻骨〗您身边的期刊发表专家
您的位置:网站首页 > 教育论文 > 教学设计论文 > C语言中冒泡排序算法教学设计

C语言中冒泡排序算法教学设计 

中华智刊网 中华智刊网日期:2020-07-14 07:50:00人气:399

排序是计算机科学中一项重要的技术,其应用范围广、使用频率高,因此对于排序算法的研究一直是计算机专家的重点。高校的程序设计类课程也将排序算法作为重难点进行教学。

1常见的几种排序算法

1.1算法的基本概念

算法(Algorithm)是指解题方案的准确而完整的描述,是一组解决问题的指令集合,按照一定的语法规则输入,在有限时间内获得所要求的输出。简单说就是计算机的解题过程。算法具备以下几个特征:有穷性,一个算法的执行次数必须是有限的;确切性,算法的中的语句都应该具有确切的语义;输入,算法可以有0个或多个输入,给运算对象赋初值;输出,算法应该有一个或多个输出,显示算法的运行结果;可行性,算法的设计在原则上是可行的。

1.2排序算法的简述

常见的几种排序算法有:冒泡排序、选择排序、快速排序、计数排序以及托普排序等。冒泡排序(BubbleSort),是最简单的排序方法,其基本思想是:将要排序的元素看成是一组竖排的“气泡”,较小的元素较轻,往上浮,通过若干次对这个“气泡”序列的处理,让最轻的浮到最上面,次轻的次之,依次完成排序。按照一般的教学方法,老师会先向学生讲解冒泡排序的基本思想和相应代码然后再执行。这种方式学生理解和掌握起来比较困难,也无法调动学生的学习积极性,更无法使学生灵活运用。因此,要设计出一个合理、高效的教学过程,调动学生的学习积极性,拓展学生的自主思维能力,使学生掌握冒泡排序算法的思想及其编程方法,并运用到解决实际问题当中。

2教学过程设计

2.1利用多媒体动态分解排序步骤

通过多媒体软件将排序过程设计为动态效果,演示数据序列的交换过程。相邻数据进行比较,大数下沉、小数上浮。这样能直观地展现冒泡序的过程,提高学生的学习兴趣。

2.2排序过程动态解析

下面通过实例来说明冒泡排序的过程,设计排序的数据序列为:5,7,3,0,6五个数,进行升序排列,其过程分析如下。第一趟排序:先让最上面相邻两个数字进行比较,如果上面的数大于后面的数,就交换两者的位置,再将交换后的数依次与后面的数进行比较,经过4次这样的比较,就可以让最大的数“沉底”。第二趟排序:对剩下的4个数字,再进行两两比较,同前面过程一样,经过3次比较,第二大的数就排到了倒数第二个位置。第三趟排序:对剩下的3个数,再进行两两比较,同前面过程一样,经过2次比较,第三大的数排到了倒数第三个位置。第四趟排序:对剩下的2个数进行两两比较,过程同上,经过1次比较,第四大的数排到了倒数第四个位置。从而完成的本次排序。

2.3给出代码与分析

根据前面对排序过程的分析可知,如有n个数要进行排序,则可总结出以下步骤:排序的趟数为n-1;相邻两数从前往后比;每趟比较n-1-i次;大小不对就交换。按照总结的步骤给出完成相应功能的代码,学生接受和理解起来更加容易。其主要代码如下:1For(i=0;ia[j+1])/*大小不对就交换*/4{temp=a[j];5a[j]>a[j+1];6a[j+1]=temp;7}8}通过教学实践证明,冒泡排序的思想容易理解,学生在将其转换为程序言时较难,通过将排序过程作以上步骤总结后,学生在写程序时只需安排步骤进行代码编写,简单易行。再让学生自己举例,分析程序的执行过程,验证冒泡排序的思想和代码的正确性。

2.4引导学生发现问题,改进算法

在教学中让学生跟着老师的思路理解并掌握知识点很重要,但同时引导学生发现算法设计中存在的问题或者不完善的地方,由此探索解决办法,也是教学的一个重要目的。观察分析排序过程的表1可发现,最后两趟的数据顺序是一致的,也就是说倒数第二趟排序就已经排序完成了,最后一趟排序过程是多余的。由此可见,不管初始数据序列如何,根据上面的算法设计都要进行n-1趟排序,而在实际序列中,可能在少于n-1趟的排序中就已经变成了有序序列,完成了排序,后面的循环就没有必要了。这时老师可给出一个常规的改进算法:设置一个标志变量flag,如flag=1,表示有交换;flag=0,表示无交换。即是当flag=0时就结束循环,提高排序效率。具体做法是:在上述程序第1行下插入语句“flag=0;”,第6行下插入语句“flag=1;”,第7行下插入语句“if(flag==0)break;”。这样在程序的内层循环中不再有值的变化时就可以跳出循环,结束程序,从而提高算法的效率。现代教育着重对学生创造性思维的培养,相对于知识的讲授更重要的是让学生掌握思维方式,发散思维就是创造性思维中的一种重要形式。通过上面的讲解让学生知道冒泡算法还有其不完善的地方,可进一步启发学生对算法进行改进:如上浮下沉算法、快速排序算法、线性时间算法等。使学生能更快更好掌握排序算法的基本思想和原理,着重培养学生发现问题和解决问题的能力,激发学生的独立思考和创新能力,这比将固化的知识点传授给学生更加的重要和有效。

3结语

本文以讲授冒泡排序为例,设计了通过动态的PPT和增加动画效果等多媒体教学手段,采用正向讲解算法思想,逆向分析具体实例,归纳、总结算法的多种思维方法,形象生动的向学生展示了冒泡排序的基本思想和变化过程。一方面通过步骤的总结过度到代码的书写,突破代码书写的难点。另一方面引导学生观察算法的不足之处,让学生自己发现问题,并提出解决问题的办法,进而培养学生的发散思维和独立思考的能力,体现了现代教育着重培养学生创新能力的教育思想。

作者:杨波 梁少林 单位:四川文理学院数学与财经学院

 拼音教学论文   高中地理论文   素描教学论文   舞蹈教学论文   教学探究论文 音标教学论文   课程设计论文   教学模式论文   案例教学论文   播音主持论文 音乐教学论文   化学实验论文   政治教学论文   教育学论文   赏识教育论文 高效课堂论文   入学教育论文   实验教学论文   职教论文   外语教学论文 教学研究论文   学科建设论文   开放教育论文   教学设计论文   教学质量论文 教学方法论文   培训论文   教育技术论文   教育思想论文   教师教学论文
关键字: 课外阅读论文篇

栏目分类

网络客服QQ: 沈编辑

投诉建议:19933070666    投诉建议QQ:

招聘合作:2324187102@qq.com (如您是期刊主编、文章高手,可通过邮件合作)

地址:河北省 ICP备案号:冀ICP备20013286号-1

【免责声明】:中华智刊网所提供的信息资源如有侵权、违规,请及时告知。

关注”中华智刊网”
 
QQ在线咨询
论文发表QQ