组卷题库 > 高中信息技术试卷库
试题详情
小张学习了冒泡排序后,觉得还可以再改进,用K指向要排序的数的头部,用m指向要排序的数的尾部,每一轮先从前向后扫描k~m-1, 比较相邻若逆序则交换,找出本轮最大数放到本轮数据的尾部,再从后到前扫描剩下的序列m~k+1,比较相邻若逆序则交换,找出本轮最小数放到本轮数据头部。直到k=m结束程序。以下是改进后的程序请补充完整。
Dim n As Integer   ‘数字的个数
Rem 以下程序段为产生n个[10,99]之间的随机整数并在list1中显示
Private Sub Command1_Click()
Randomize Time
n = 50
For i = 1 To n
    List1.AddItem Str(Int(Rnd * 90) + 10)
Next
End Sub
Rem 以下程序段为从list1中取出数并进行排序,最后在list2中显示排序后的数
Private Sub Command2_Click()
Dim a(50) As Integer
Dim k As Integer, m As Integer, i As Integer, j As Integer
For i = 1 To n
    a(i) = Val(List1.List(i - 1))
Next i
m = n:k=1
Do While
    J=m-1 : m=1
 For i = k To j
      If a(i+1) < a(i) Then t = a(i): a(i) = a(i + 1): a(i + 1) = t: m=i
    Next i
j =
k=1
For i = m To  j  Step -1
        If a(i) < a(i - 1) Then t = a(i): a(i) = a(i - 1): a(i - 1) = t: 
    Next i
   
Loop
For i = 1 To n
    List2.AddItem
Next i
End Sub
知识点
参考答案
采纳过本试题的试卷
教育网站链接