选择法排序程序设计导学案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章算法实例(三)
——选择排序程序设计导学案一、课程学习目标
二、基础知识建构
1、选择排序法
选择排序的基本思想:
在所有的记录中从前往后
....选出最小
..(.大.).的数据,把它与第一个
...数据交换,然后在
其余
..的记录中从前往后
....再选出最小
..(大)
...的数据与第二个
...数据交换,依此类推,直至所有数据排序完成。
思考:选出最小(大)的数据过程?
范例1:数组D(1to 8)中的8个数据如下:12、15、24、8、31、15..、11、10。
现利用选择排序法进行升序排列。
各趟的排序后的结果为:
原始数据12152483115..1110
第一趟结果81524123115..1115
第二趟结果81024123115..1115
第三趟结果81011123115..2415
第四趟结果81011123115..2415
第五趟结果810111215..312415
第六趟结果810111215..152431
第七趟结果810111215..152431
请把数组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、冒泡排序与选择排序的比较;
. .