TEMP=a(J):
a(J)=a(J-1):
a(J-1)=TEMP
EndIf
NextJ
NextI
ForI=1Toc
List2.AddItema(I)
NextI
EndSub
问题七:
command1_click()事件实现哪几项功能?
两项功能:
一项是冒泡排序,一项是把已排好序的数组a输出(用for循环实现)
教师演示事先编好的程序,让学生观察并体验程序的执行过程
3、关于程序的升降序功能
问题一:
如果要实现升降序的功能,界面与代码如何修改?
①界面修改:
添加一控件combobox,生成combo1对象
②Command1_click()代码修改如下:
说明:
else后面即为降序排序,比较的条件由原来a(J)a(J-1)即可。
③添加一窗体加载模块
对三个语句稍作解释:
按下程序运行按钮,执行Form_load事件,在combo1中添加两项“升序”、“降序”,界面上显示的是升序,因为combo1.ListIndex=0
教师演示事先编好的具有升降功能的程序,让学生观察并体验程序的执行过程
四、关于冒泡排序的小结
1、排序及冒泡排序的概念
2、冒泡排序的算法思想
3、n个数据冒泡排序的通用程序代码
4、用冒泡排序法对键盘输入的一批数据从小到大排序的程序实现
变量 a
(1)a
(2)a(3)a(4)a(5)
初始 73481
结果13478
五、教学后记:
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。
通过排序算法的学习,使学生了解计算机的排序原理。
冒泡排序算法对学生来说是相对较难的一种算法。
从冒泡排序的概念出发,结合实例,用设问的方法一步步地引导学生认识冒泡排序的算法思想,分析冒泡排序的过程,总结出冒泡排序的代码,一切自然而然,水到渠成。
曾有一个在学习算法时说了这样一句话:
学习编程,使简单的问题复杂化,使复杂的问题简单化。
这句话在排序算法中得到很好地体现。
//经典冒泡排序
voidBubbleSort(intarr[],intn)
{
inti=0,j=0;
for(i=0;i for(j=0;j {
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
#include
voidshow(int*p)
{
inti=0;
for(i=0;i<8;i++)
{
printf("%3d",p[i]);
}
printf("\n");
}
intmain(intargc,char*argv[])
{
intp[]={8,9,4,5,1,7,6,0};
inti=0;
intj=0;
inttmp=0;
for(i=0;i<8;i++)
{
for(j=0;j<7-i;j++)
{
if(p[j]>p[j+1])
{
tmp=p[j];
p[j]=p[j+1];
p[j+1]=tmp;
}
}
printf("第%2d轮排序结束:
",i+1);
show(p);
}
return0;
}来源:
考试大