小吳為了探究冒泡排序過(guò)程中數(shù)據(jù)的“移動(dòng)”情況,編寫(xiě)了一個(gè)VB程序,功能如下:在列表框List1中顯示排序前數(shù)據(jù)(存儲(chǔ)在數(shù)組a中),在文本框Text1中輸入初始位置(即下標(biāo)值),單擊“排序”按鈕Command1后,在標(biāo)簽Label1中顯示指定初始位置的數(shù)據(jù)在排序過(guò)程中的位置變化情況,排序后的數(shù)據(jù)顯示在列表框List2中。程序運(yùn)行界面如圖所示。
實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有錯(cuò),請(qǐng)改正。
Dim a(1To 8)As Integer
Dim n As Integer
Private Sub Form_Load ( )
'n=8,排序前的8個(gè)數(shù)據(jù)存儲(chǔ)在數(shù)組a中,并在列表框Listl中顯示
'代碼略
End Sub
Private Sub Command1_Click ( ?。?br/>Dim i As Integer,j As Integer,k As Integer
Dim pos As Integer'變量pos存儲(chǔ)指定數(shù)據(jù)的位置(即下標(biāo)值)
Dim s As String'變量s存儲(chǔ)pos變化情況
s=Text1.Text
pos=Val(Text1.Text)
For i=1To n-1
For j=n To i+1Step-1
If a(j)<a(j-1)Then
‘(1)
a(j-1)=a(j)
a(j)=k
'如果pos位置的數(shù)據(jù)參與交換,則更新pos值,記錄pos變化情況
If pos=j Then
pos=j-1
s=s+”→”+Str(pos)
‘(2)
pos=j
s=s+”→”+Str(pos)
End If
End If
Next j
Next i
Label1.Caption=”位置變化情況:”+s
For i=1To n
List2.AddItem Str(a(i))
Next i
End Sub
【考點(diǎn)】冒泡排序算法及其實(shí)現(xiàn).
【答案】見(jiàn)試題解答內(nèi)容
【解答】
【點(diǎn)評(píng)】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書(shū)面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:27引用:3難度:0.3
相似題
-
1.有如下 Python 程序段:
運(yùn)行后列表中的值可能是( ?。?/h2>發(fā)布:2024/12/18 21:0:2組卷:5引用:3難度:0.3 -
2.用VB編寫(xiě)的函數(shù)bubble_sort是一個(gè)用冒泡方法實(shí)現(xiàn)排序的函數(shù),其調(diào)用時(shí)需要三個(gè)參數(shù):布爾類(lèi)型參數(shù)sx來(lái)確定是升序還是降序,sx為T(mén)rue時(shí)為升序,否則為降序;整數(shù)型數(shù)組a
比如有一個(gè)整數(shù)型數(shù)組a(1 to 10)需要降序排序,可以直接這樣調(diào)用:
a
該函數(shù)VB代碼如下:
Function bubble_sort(sx As Boolean,a
Dim i,j,t As Integer
For i=1 To n-1
For j=
If
If a(j)<a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t
Else
If a(j)>a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t
End If
Next j
Next i
bubble_sort=a
End Function
請(qǐng)將代碼補(bǔ)充完整:
①
②發(fā)布:2024/12/20 20:30:1組卷:23引用:2難度:0.3 -
3.用選擇排序法對(duì)一組數(shù)據(jù)進(jìn)行升序排序,第一趟排序結(jié)束后的順序?yàn)?、6、9、3、7,則原始數(shù)據(jù)順序不可能的是( ?。?/h2>
發(fā)布:2024/12/18 23:0:1組卷:10引用:1難度:0.5
把好題分享給你的好友吧~~