隨即產(chǎn)生10個(gè)0~100的數(shù),并按從小到大排序,已經(jīng)驗(yàn)證OK!!!
成都創(chuàng)新互聯(lián)提供高防服務(wù)器租用、云服務(wù)器、香港服務(wù)器、珉田數(shù)據(jù)中心等
Private Sub Command1_Click()
Dim num(1 To 10) As Integer
Dim i, j, t As Integer
For i = 1 To 10
num(i) = Int((100 - 0 + 1) * Rnd + 0)
Next
For i = 1 To 10
For j = i + 1 To 10
If num(i) num(j) Then
t = num(i)
num(i) = num(j)
num(j) = t
End If
Next j
Next i
For i = 1 To 10
Print num(i)
Next
End Sub
我也是VB愛好者,以后互相學(xué)習(xí),互相努力哦!!!^_^
給你一個(gè)最簡單的冒泡排序代碼:
將三個(gè)數(shù)放到一個(gè)數(shù)組中。
a(0)=val(text1.text):a(1)=val(text2.text):a(2)=val(text3.text)
dim flag as Boolean,temp as Integer
for i = 0 to 2
flag = true
for j = 2 to 1
if a(j)a(j-1) then
temp = a(j-1)
a(j-1) = a(j)
a(j) = temp
flag = false
end if
next j
if flag then Exit For
next i
text4.text=a(0):text5.text=a(1):text6.text=a(2)
如果五個(gè)號(hào)碼為數(shù)組元素(1)到(5),正確的排序過程:
對(duì)于i = 1至4
對(duì)于L = 1到5 - 如果A(L)(L +1)
N = A(L)
A(L),= A(L +1)
(L +1) =
結(jié)束如果下一頁l
接下來,我
能夠到第一臺(tái)計(jì)算機(jī)來驗(yàn)證結(jié)果,然后分析程序。
試試看:
For?i?=?LBound(moto)?To?UBound(moto)?-?1
For?j?=?LBound(moto)?To?UBound(moto)?-?1?-?i
If?moto(j)??moto(j?+?1)?Then
t?=?moto(j)
moto(j)?=?moto(j?+?1)
moto(j?+?1)?=?t
End?If
Next?j
Next?i
For?i?=?LBound(moto)?To?UBound(moto)
Print?moto(i);
Next?i
書上講的是不容易理解我來給你說下比如 3,1,2,5,6,4 為例首先把數(shù)按順序賦給數(shù)組 a(1~6) 不難吧然后給你提一點(diǎn)冒泡法最后一個(gè)數(shù)會(huì)確定下來第一個(gè)數(shù),來下面:從大到小排: 1。for i = 1 to 6 2。 for j=i to 6-i 3。 if a(j)a(j+1) then t=a(i) a(j)=a(j+1) a(j+1)=t 4。 next j 5。next i首先i=1,j=1 j=j+1 3和1比不交換 i=1 j=2 j=j+1 1和2交換 為3,2,1,5,6,4 i=1 j=3 j=j+1 1和5交換 為3,2,5,1,6,4 i=1 j=4 j=j+1 1和6交換 為3,2,5,6,1,4 i=1 j=5 j=j+1 1和4交換 為3,2,5,6,4,1 注意代碼6 for j= 1 to 6-i 為什么6-i 因?yàn)樽钚〉臄?shù) 1 已經(jīng)確定了,下次不需要排了。 繼續(xù)反復(fù)操作 確定倒數(shù)第2個(gè)最小的,直到確定到順數(shù)第2個(gè),完成。 為什么是順數(shù)第2個(gè),因?yàn)榈?個(gè)和第2個(gè)比較了,第1個(gè)就不用比了,其中一個(gè)最大一個(gè)最小。累啊```不知道表達(dá)清楚沒
冒泡排序法思路:(假設(shè)有10個(gè)數(shù),需要從小到大排)首先拿出第一個(gè)來和其他9個(gè)逐個(gè)來比較,這樣就可以找到10個(gè)中最小的,放到第一位;接著拿第二個(gè)來和其他8個(gè)逐個(gè)比較,這樣就可以找到剩下9個(gè)中得最小的,放到第二位;接著拿第三個(gè)來和其他7個(gè)逐個(gè)比較,這樣就可以找到剩下8個(gè)中得最小的,放到第三位;。。。。。。就可以了。也許下面的看了會(huì)更清楚點(diǎn) Dim a(10)Randomize
For i = 1 To 10
a(i) = Int(Rnd * i + 3 + Rnd * 10) '給數(shù)組賦值
Print a(i);
Next i
For i = 1 To 10 ‘
For j = i + 1 To 10
If a(j) a(i) Then ’如果剩余的比a(i)小的話,就交換
t = a(j)
a(j) = a(i)
a(i) = t
End If
Next j
Next i
For k = 1 To 10
Print a(k); ‘打印排好的數(shù)
Next k