随即产生10个0~100的数,并按从小到大排序,已经验证OK!!!
成都创新互联提供高防服务器租用、云服务器、香港服务器、珉田数据中心等
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爱好者,以后互相学习,互相努力哦!!!^_^
给你一个最简单的冒泡排序代码:
将三个数放到一个数组中。
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)
如果五个号码为数组元素(1)到(5),正确的排序过程:
对于i = 1至4
对于L = 1到5 - 如果A(L)(L +1)
N = A(L)
A(L),= A(L +1)
(L +1) =
结束如果下一页l
接下来,我
能够到第一台计算机来验证结果,然后分析程序。
试试看:
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 为例首先把数按顺序赋给数组 a(1~6) 不难吧然后给你提一点冒泡法最后一个数会确定下来第一个数,来下面:从大到小排: 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 因为最小的数 1 已经确定了,下次不需要排了。 继续反复操作 确定倒数第2个最小的,直到确定到顺数第2个,完成。 为什么是顺数第2个,因为第1个和第2个比较了,第1个就不用比了,其中一个最大一个最小。累啊```不知道表达清楚没
冒泡排序法思路:(假设有10个数,需要从小到大排)首先拿出第一个来和其他9个逐个来比较,这样就可以找到10个中最小的,放到第一位;接着拿第二个来和其他8个逐个比较,这样就可以找到剩下9个中得最小的,放到第二位;接着拿第三个来和其他7个逐个比较,这样就可以找到剩下8个中得最小的,放到第三位;。。。。。。就可以了。也许下面的看了会更清楚点 Dim a(10)Randomize
For i = 1 To 10
a(i) = Int(Rnd * i + 3 + Rnd * 10) '给数组赋值
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); ‘打印排好的数
Next k