当前位置:文档之家› 选择排序法教案

选择排序法教案

选择排序法教案
教学目标:
掌握选择排序的算法,并会用选择排序法解决实际问题
教学重点:
选择排序算法的实现过程
教学难点:
选择排序算法的实际应用
教学过程:
一、引入
我们在实际生活中经常会产生一系列的数字,比如考试的成绩,运动会跑步的成绩,并对这些数据按一定的顺序排列得到我们所需要的数据,那么怎么样来实现这些排序呢?引入今天的课题。

二、新课
1.给出10个数,怎么实现排序呢?
78,86,92,58,78,91,72,68,35,74
学生回答:依次找出其中的最大数,找9次后能完成排序。

●排第一个数时,用它和其后的所有数逐个进行比较,如果比其它数要大,则
进行交换,否则保持不变。

经过一轮比较后,我们得到最大数,并置于第一位置。

相应的程序代码为:
For i=2 to 10
if a(1)<a(i) then
tmp=a(1)
a(1)=a(i)
a(i)=tmp
end if
Next i
●排第二个数时,用同样的方法实现,代码如下
for i=3 to 10
if a(2)<a(i) then
tmp=a(2)
a(2)=a(i)
a(i)=tmp
end if
next i
●以此类推,我们得到一个通式,用于排第j个数
For i=j+1 to 10
if a(j)<a(i) then
tmp=a(j)
a(j)=a(i)
a(i)=tmp
end if
Next i
思考:排几次能完成10个数的排序?用什么实现?
学生回答:排9次,用循环实现
最后得到选择排序算法:
For j=1 to 9
For i=j+1 to 10
if a(j)<a(i) then
tmp=a(j)
a(j)=a(i)
a(i)=tmp
end if
Next i
Next j
思考:排50个数怎么办?排n个数怎么办?如果升序怎么办?
学生回答:数的个数与循环次数有关,升序和降序与比较有关
2.习题
随机产生60个[10,100]之间的整数,用选择排序法按从大到小的顺序输出。

提解决一个排序问题的一般步骤:
(1)定义变量、数组,用循环赋初值(随机产生或键盘输入)。

dim i as integer,j as integer
Dim a(60) as integer,tmp as integer
For i=1 to 60
a(i)=int(rnd*91)+10
Next I
(2)运用排序算法
For j=1 to 59
For i=j+1 to 60
if a(j)<a(i) then
tmp=a(j)
a(j)=a(i)
a(i)=tmp
end if
Next I
Next j
(3)用循环输出排序结果
For i=1 to 60
print a(i);
Next i
三、小结
选择排序的算法:从第一个数开始,逐个找出其中的最值,最终达到排序的结果。

四、作业
请编写排序按钮的事件处理程序,完成将列表框1中的15个数据按从小到大的顺序输出到列表框2中。

相关主题