题号:3395837题型:操作题难易度:一般
n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮Command1,在列表框List2中显示这些数据按升序排序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim a(1 To 8) As Integer
Dim n As Integer
Private Sub Form_Load()
’n=8,排序前数据存储在数组a中,并在列表框List1中显示
’代码略
End Sub
Private Sub Command1_Click()
Dim flag As Boolean ’flag值为True表示一遍加工中发生过交换
i=1
flag=True
Do While ’(1)
flag=False
For j=n To i+1 Step-1
If a(j)<a(j-1) Then
k=a(j):a(j)=a(j-1):a(j-1)=k
flag=True
End If
Next j
i=i+1
Loop
Label3.Caption=“排序过程的加工遍数为”+’(2)
For i=1 To n
List2.Addltem Str(a(i))
Next i
End Sub
+错题本:0
相关推荐
题号:3727106题型:选择题难易度:容易
下列选项中,能够被计算机直接接受和识别的语言是(      )。
A.机器语言B.汇编语言C.Pascal语言D.Visual Basic语言
+错题本:0
题号:3727119题型:选择题难易度:容易
算法是求解某一问题的步骤和方法。算法的输出结果至少应有(      )。
A.0个B.1个C.2个D.3个
+错题本:0
题号:3727157题型:选择题难易度:较难
有一个数组,采用冒泡排序,第一遍排序后的结果为:4,10,5,32,6,7,9,17,24那么该数组的原始顺序不可能的是
A.10,5,32,6,7,9,17,24,4B.10,5,32,6,7,9,4,17,24
C.10,5,32,4,6,7,9,17,24D.4,10,5,32,17,9,24,6,7
+错题本:0