-
1 # 使用者9708519223311
-
2 # 只玩亞瑟1
展開全部
Private Sub Command1_Click()
Dim a(1 To 10) As Integer
For i = 1 To 10
a(i) = Int(Rnd * 10)
Print a(i);
Next i
Print
"以上十隨機得出10個數
For i = 1 To 9 "這裡開始是雙重迴圈
For j = i + 1 To 10
If a(i) > a(j) Then "如果前一個數大於後一個數則交換位置
t = a(i): a(i) = a(j): a(j) = t
End If
Next j
Print a(i);
Next i
Print a(i);
End Sub
I等於1時 就是拿第一位和第二位比較 比較大的的數排後面 然後比較第一位和第三位 For j = i + 1
To 10 直到比較到最後一位
i=2 時也是如此 迴圈9次就完成排序
5 3 2 7
i=1 時
J=2時 3 5 2 7
J=3時 2 5 3 7
j=4時 2 5 3 7
I=2時
j=3時 2 3 5 7
擴充套件資料
Private Sub Command1_Click()
Dim a(10) As Integer
Dim b As Integer
Dim i As Integer
Dim j As Integer
Dim k As Integer
For i = 1 To 10
a(i) = Int(Rnd * 90 + 10)
Print a(i);
Next i
Print
For i = 1 To 9
k = i
For j = k + 1 To 10
If a(j) < a(k) Then k = j
Next j
If a(i) > a(k) Then
b = a(i)
a(i) = a(k)
a(k) = b
End If
Next i
For i = 1 To 10
Print a(i);
Next i
Print
End Sub
參考資料:百度百科 - 選擇法排序
回覆列表
Private Sub Command1_Click()
Dim a(1 To 10) As Integer
For i = 1 To 10
a(i) = Int(Rnd * 10)
Print a(i);
Next i
Print
"以上十隨機得出10個數
For i = 1 To 9 "這裡開始是雙重迴圈
For j = i + 1 To 10
If a(i) > a(j) Then "如果前一個數大於後一個數則交換位置
t = a(i): a(i) = a(j): a(j) = t
End If
Next j
Print a(i);
Next i
Print a(i);End Sub
I等於1時 就是拿第一位和第二位比較 比較大的的數排後面 然後比較第一位和第三位 For j = i + 1
To 10 直到比較到最後一位
i=2 時也是如此 迴圈9次就完成排序
5 3 2 7
i=1 時
J=2時 3 5 2 7
J=3時 2 5 3 7
j=4時 2 5 3 7
I=2時
j=3時 2 3 5 7