. Dim a(1 To 10)As Integer'存放原始數據 Dim b(1 To 10)As Integer'存放名次 Private Sub Command1_Click( ) Dim i As Integer,j As Integer,n As Integer For i=1 To 10 n=0 For j=1 To 10 If Then n=n+1'① Next j'② Next i For i=1 To 10 List2.AddItem a(i) &““& b(i) Next i End Sub Private Sub Form_Load( ) '隨機產生10個[60,100]之間的隨機數,并顯示在List1中,代碼略 End Sub.
17.n個數據的冒泡升序排序需要經過n-1遍的加工,每一遍加工自下而上比較相鄰兩個數據,把較小者交換到上面,在第i遍加工過程中需要進行n-i對數據的比較,在某些情況下,第i遍加工過程中,在上面部分較小數據已經有序情況下,不需要再進行n-i對數據的比較。如對“17,18,19,24,23,20”這6個數據排序中,第1遍排序結束后數據為“17,18,19,20,24,23”,第2遍排序時不再需要對20及其前面4個數據進行比較。程序界面如圖所示 以下程序實現了冒泡排序的優化,請在橫線處填寫合適的代碼。 Dim n As Integer Dim a (1 to 100)As Integer Private Sub Form_Load ( ) ‘n=10,排序前生成的數據存儲在數組a中,并在列表框List1中顯示 ‘代碼略 End Sub Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,start As Integer,t As Integer
Do While i<n start=n For j=n To i Step
If a(j)<a(j-1)Then t=a(j):
:a(j-1)=t start=j End If Next j
Loop For i=1 To n List2.AddItem Str(a(i)) Next i End Sub