选择法排序程序设计导学案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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、冒泡排序与选择排序的比较;

. .

相关文档
最新文档