3.
小吴为了探究冒泡排序过程中数据的“移动”情况,编写了一个VB程序,功能如下:
在列表框List1中显示排序前数据(存储在数组a中),在文本框Text1中输入初始位置(即下标值),单击“排序”按钮Command1后,在标签Label1中显示指定初始位置的数据在排序过程中的位置变化情况,排序后的数据显示在列表框List2中。程序运行界面如图所示。
实现上述功能的VB程序如下,请在横线处填上合适的代码,改正加框处的代码。
Dim a(1 To 8) As Integer
Dim n As Integer
Private Sub Form_Load()
'n = 8,排序前的8个数据存储在数组a中,并在列表框List1中显示
'代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
Dim pos As Integer '变量pos存储指定数据的位置(既下标值)
Dim s As String '变量s存储pos变化情况
s = Text1.Text
pos = Val(Text1.Text)
For i = 1 To n - 1
For j = ⑴
If a(j) < a(j - 1) Then
⑵
a(j - 1) = a(j)
a(j) = k
'如果pos位置的数据参与交换,则更新pos值,记录pos变化情况
If pos = j Then
pos = j - 1
s = s + "→" + Str(pos)
'(3)
pos = j
s = s + "→" + Str(pos)
End If
End If
Next j
Next i
Label1.Caption = "位置变化情况:" + s
For i = 1 To n
List2.AddItem Str(a(i))
Next i
End Sub
⑴ ⑵ ⑶