资源描述
实践 冒泡排序和选择排序
1、任务描述
(1)用随机数函数生成一批数据,存放在数组a(1 to 8)中,生成的数据显示在待排序列表框中。
(2)用冒泡排序算法,对a中的数据进行排序,结果显示在已排序列表框中。
3、操作提示
(1)界面设计。(已经设计好)
(2)数据生成。初始化随机数发生器,清空待排序列表框。取一个随机数,添加至街排序列表框,保存到数组a中,直到数组中存满数据。需要合使用的语句、函数功能说明如下:
主要代码实现如下:
Private Sub Command1_Click() '产生8个随机数,范围为0<=X<=100
Randomize '随机数初始化
List1.Clear '原始数据清空
List2.Clear '将排序后的列表数据清空
List3.Clear
For i = 1 To 8
a(i) = Int(Rnd * 100) 'Rnd 函数返回的随机数介于 0 和 1 之间,可等于 0,但不等于 1
List1.AddItem Str(a(i)) '将数据显示到原始数据列表中
Next
End Sub
(4)冒泡排序算法。根据冒泡算法流程图填写完善下面的程序代码。
Private Sub Command2_Click() '对8个数进行冒泡法排序
List2.Clear '将排序后的列表数据清空
For i = 1 To ______
For j = 8 To ________step-1
If a(j) < a(j - 1) Then
t= a(j)
__________
a(j - 1) =t
End If
Next j
Next i
For i = 1 To 8
List2.AddItem Str(a(i)) '在列表2中显示排序后的数据
Next i
End Sub
(5)选择排序算法。根据选择算法流程图填写完善下面的程序代码
Private Sub Command3_Click() '对8个数进行选择法排序
List3.Clear '将排序后的列表数据清空
For i = 1 To_____ 'n个数,排序n-1次
k = i
For j =________ To ________ '如果找到更小的,用k记住它的编号
If a(k) > a(j) Then ________
Next j
If k <> i Then '如果最小的数所在的位置不是i,则交换
t= a(i)
a(i) = a(k)
__________
End If
Next i
For i = 1 To 8
List3.AddItem Str(a(i)) '在列表3中显示排序后的数据
Next i
End Sub
(5)调试运行程序。
展开阅读全文