资源描述
义乌六中“315”导学案——信息技术
第二章 算法实例(三)
——选择排序程序设计导学案
一、课程学习目标
重点
难点
重点:选择排序的过程;
选择排序算法的程序设计;
冒泡排序与选择排序的比较;
难点:选择排序算法的程序设计
学科
指导
意见
教学要求:
1、初步掌握选择排序算法;
会考考纲
知识条目
考试要求
选择排序算法及程序实现
c
高考考纲
选择排序算法及程序实现
c
二、基础知识建构
1、选择排序法
选择排序的基本思想:
在所有的记录中从前往后选出最小(大)的数据,把它与第一个数据交换,然后在其余的记录中从前往后再选出最小(大)的数据与第二个数据交换,依此类推,直至所有数据排序完成。
思考:选出最小(大)的数据过程?
④
③
②
①
min
范例1:数组D(1to 8)中的8个数据如下:12、15、24、8、31、15、11、10。
现利用选择排序法进行升序排列。
各趟的排序后的结果为:
原始数据
12
15
24
8
31
15
11
10
第一趟结果
8
15
24
12
31
15
11
15
第二趟结果
8
10
24
12
31
15
11
15
第三趟结果
8
10
11
12
31
15
24
15
第四趟结果
8
10
11
12
31
15
24
15
第五趟结果
8
10
11
12
15
31
24
15
第六趟结果
8
10
11
12
15
15
24
31
第七趟结果
8
10
11
12
15
15
24
31
探究学习:
请把数组D(1to 8)中的8个数据如下:4、26、12、26、8、31、17、21。现利用选择排序法进行排序。并写出各趟排序后的数据的序列。
第一趟结果
第二趟结果
第三趟结果
第四趟结果
第五趟结果
第六趟结果
第七趟结果
选择排序法程序界面与代码:
Dim d(1 To 8) As Integer '定义一个数组
Private Sub Command1_Click() '产生8个随机数
Dim i As Integer
i=1
For i = 1 To 8
‘产生[0,100)之间的随机数存放在数组d中
List1.AddItem Str(d(i))
Next i
End Sub
Private Sub Command2_Click() '对8个数进行选择法排序
Dim i as Integer, j as integer, k as integer , min as integer
i=1
For i = 1 To 7 '选择第i个数假设为最小的数
Min = i
For j = i + 1 To 8 '如果找到更小的,用min记住它的编号
If Then Min = j
Next j
If Min <> i Then '如果最小的数所在的位置不是i,则交换
End If
For i = 1 To 8
'在列表框list2中显示排序后的数据
Next i
Next i
End Sub
Private Sub Command3_Click() '清空列表数据
‘清空列表框list1
‘清空列表框list2
End Sub
3、冒泡排序与选择排序的比较
①、对两个相同的数据的排序
在冒泡排序后, (填“不会”或“可能会”)改变原数据中相同数据的原本的先后顺序
在选择排序后, (填“不会”或“可能会”)改变原数据中相同数据的原本的先后顺序
②、排序的效率
选择排序比冒泡排序效率要 (数据交换次数的多少)
③、对n个数据排序的趟数
均要进行 趟
三、小结
1、选择排序的过程;
2、选择排序算法的程序设计;
3、冒泡排序与选择排序的比较;
4
展开阅读全文