冒泡排序在某一遍加工过程中没有数据交换时,说明数据已经有序,优化程序段如下
Dim i As Integer, j As Integer, t As Integer
Dim flag As Boolean 'flag标记是否发生了交换操作
i = 1
For i = 1 To 4
flag = False
For j = 5 To i + 1 Step -1
If a(j) > a(j - 1) Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
flag = True
End If
Next j
If Not flag Then Exit For
Next i
数组元素a(1)到a(5)的值依次为“48,36,24,97,77” ,经过该程序段“加工”后,变量i的值是( )
某程序代码如下:
Const n = 5
Dim a(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer
For i = n To 2 Step -1
For j = 1 To i - 1
If a(j) > a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t
Next j
Next i
End Sub
(1)若排序前数组元素a(1)到a(5)分别是“23,86,98,65,2”,则单击按钮Command1后,数组元素a(1)到a(5)分别是_______________。
(2)题目代码采用了双重For循环嵌套结构,你能否将外层循环改成do循环结构,写出对应的代码。