冒泡排序动态演示算法设计

2016-08-06 16:08蔡昊君
大科技 2016年32期
关键词:控件排序程序

蔡昊君

(郑州市第一中学 河南郑州 450007)

冒泡排序动态演示算法设计

蔡昊君

(郑州市第一中学 河南郑州 450007)

在传统的教学方法中,针对冒泡算法的教学主要是通过PPT、图解或者flash动画进行讲述的,但是在教学过程中,仍然难以取得一个良好的教学效果,针对这种情况,重新对冒泡算法进行了研究,并运用C#语言设计了一套冒泡排序动态演示程序,可以让学生更加直观的了解该算法的动态执行过程,并直接进行动态演示,进而能够轻松的掌握冒泡排序算法的本质内容。

冒泡排序;程序;动态演示

作为计算机数据处理过程中经常会用的到的算法之一,冒泡排序无疑是十分经典的,在整个程序设计教学中都具有十分重要的意义。事实上,冒泡算法的基本思路是十分容易理解的,但是具体到实际的程序设计过程中取往往难以找到着手点,所以为了更加清晰、直白的将整个算法展现在学生面前,本人设计了一个冒泡排序的动态演示算法,能够让学生更加清晰的了解冒泡算法在执行过程中,程序的执行与所产生的变化。

1 冒泡排序算法简介

冒泡排序是一种最基本的排序方法,因其简单实用而被广泛应用在实际编程中,所以在进行基础编程教学中尤为重要。冒泡排序的具体过程是:假设要对数组A[1..n]中的元素进行非降序排序,则首先比较元素A[1]和A[2],若为逆序则将二者交换,然后比较元素A[2]和A[3],若为逆序则将二者交换,依次类推,直到比较最后两个元素A[n-1]和A[n],称为一趟“冒泡”,其结果是将数组中值最大的元素放到了整个序列的最后,而数组中值较小的元素都上升一个位置。然后再对剩余的A[1]到A[n-1]的元素进行第二趟“冒泡”,将具有次大值的元素放到A[n-1]的位置上。直到第n-1趟排序,在A[1]和A[2]之间进行“冒泡”后,排序完成。

冒泡排序是以交换为基础的排序算法,若在某一趟排序中未发现元素进行交换,则说明所有元素都已有序,冒泡排序过程可在该趟排序后终止。因此,可设一个标志exchange,在每趟排序开始前,先将其置为false,若排序过程中发生了交换,则将其置为true,每趟排序结束时检查exchange,若未曾发生过交换则终止算法,不再进行下一趟排序。用C#实现的冒泡排序程序如下:

2 动态演示程序界面介绍

窗体上共安排Panel控件的数量为三,其中一个是演示窗口,在程序运行过程中实时显示代表排序数据的标签控件,随着排序的进行,标签控件的颜色发生变化;命令按钮全部放置在右边的Panel控件上;最后一个Panel控件的作用是放置显示每趟排序结果的容器。图1为程序运行界面。

图1 程序运行界面

3 动态演示程序的具体实现

本冒泡排序动态演示设计系统的演示由窗口上签的颜色变换来达到演示效果,在整个程序中一共使用了三个定时器,一个定时器控件起延时的作用,另外两个定时器控件分别控制外层循环和内层循环的实现。以下为部分程序代码:

//以下为类中定义的变量private constint MAXNUMBERS=40;//可以设置的最大数组容量,最小容量为private int[]numbers=new int[1];//排序用的数组

4 结束语

本设计能是学生清晰的看见程序的语句执行情况和存储单元变化的情况,有利于学生快速的掌握冒泡排序算法,而且使用这种动态演示方式进行学习不受时间、地点的约束,学生甚至可以自己在课下自己模拟该过程,这样更有利于学生的自主学习,也可以充分的激发学生的自主学习能力和对于程序的激情,达到更好的教学效果。

[1]杨波,梁少林.C语言中冒泡排序算法的教学设计与分析[J].信息与电脑(理论版),2015(16).

[2]谢翠萍,陈家益,朱兵章.C语言中冒泡排序教学设计与分析[J].福建电脑,2013(05).

[3]郭亚庆,赵源.冒泡法排序的动态演示[J].湖北工业职业技术学院学报,2014(01).

[4]邵平.冒泡排序程序设计的探究式教学方法及其分析[J].玉林师范学院学报,2008(05).

[5]宋美英.基于C语言的冒泡排序算法探讨[J].现代计算机(专业版),2011(29).

[6]FaltinN.Structure and Constraints inInteractive Exploratory Algorithm Learning,2002.

[7]CapposJ,Homer P.Ds Cats:Animating Data Structures for CS 2 and CS 3 Courses,http://www.cs.arizona.edu/dscats/dscatstechnical.pdf.2002.

[8]CHRISTOPHER D.HUNDHAUSEN,SARAH A.DOUGLAS,JOHN T.STASKO.A Meta-Study of Algorithm Visualization Effectiveness[J].Journal of Visual Languages and Computing,2002(3).

TP311.1

A

1004-7344(2016)32-0285-02

2016-10-29

猜你喜欢
控件排序程序
排序不等式
恐怖排序
试论我国未决羁押程序的立法完善
节日排序
关于.net控件数组的探讨
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
创卫暗访程序有待改进
ASP.NET服务器端验证控件的使用
基于嵌入式MINIGUI控件子类化技术的深入研究与应用