VB解析冒泡排序為什么內循環要8-i輸入8個數字,從小到大,用冒泡排序Dim a(10) As IntegerPrivate Sub Command1_Click()For i = 1 To 8x = Int(90 * Rnd) + 10a(i) = xText1 = Text1 & x & " "Next iEnd SubPrivate Sub Command2_Click()For i = 1 To 7 '外循環,冒泡排序這一句有什么用For j = 1 To 8 - i '內循環,冒泡排序這一句有什么用 為什么要8-i,If a(j) > a(j + 1) Thent = a(j): a(j) = a(j + 1): a(j + 1) = tEnd IfNext jNext iFor i = 1 To 8Text2 = Text2 & a(i) & " "Next iEnd SubPrivate Sub Form_Load()Text1 = ""Text2 = ""End Sub
2 回答

RISEBY
TA貢獻1856條經驗 獲得超5個贊
冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序算法。
它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。
這個算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端,故名。每一輪外循環,執行完畢后,最大的元素就會“沉”到最后,而相鄰較小的元素都會“上浮”一位。所以,第一輪,是要比較到最后一個元素;而第二輪則只要比較到倒數第二個數,……,照此類推。
For i = 1 To 7 '外循環,(每一輪循環可將此輪循環中涉及的最大元素“沉”到最后,所以共要N-1輪)
For j = 1 To 8 - i '內循環,已確定有序的元素不再列入排序范圍,所以是到8-i
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
添加回答
舉報
0/150
提交
取消