注册 登录
编程论坛 新人交流区

[求助]这个程序(VB)执行后为什么没有重新排序

ljyxxzj 发布于 2007-11-05 20:23, 271 次点击
代码如下,请高手指教,谢谢
Option Base 1
Private Sub Command1_Click()
Dim bj() As Variant
Dim bjh() As Variant
Dim cdia() As Variant
Dim i, j, k, imin, t As Variant
bj = Array(8, 7, 3, 12, 6, 5, 4, 9, 1, 2, 3, 11, 12)
cdia = Array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130)

For i = LBound(bj) To UBound(bj) - 1
imin = bj(i)
For j = i + 1 To UBound(bj)
jj = bj(j)
If cdia(imin) < cdia(jj) Then
t = imin: imin = jj: jj = t
List1.AddItem bj(j)
End If
Next j
Next i
For i = 1 To UBound(bj)
Print "bj" & i & "=(" & bj(i) & ")"
Next i
End Sub
6 回复
#2
zhouqingwuji2007-11-05 21:11
你哈。还真会找问题哈!首先问你一个问题?你要排的是那个数组!~@~如果是第一个的话,你的算法有问题。
Option Base 1
Private Sub Command1_Click()
Dim bj() As Variant
Dim bjh() As Variant
Dim cdia() As Variant
Dim i, j, k, imin, t As Variant
bj = Array(8, 7, 3, 12, 6, 5, 4, 9, 1, 2, 3, 11, 12)
cdia = Array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130)

For i = LBound(bj) To UBound(bj) - 1
imin = bj(i)
For j = i + 1 To UBound(bj)
jj = bj(j)
If cdia(imin) < cdia(jj) Then
t = imin: imin = jj: jj = t 这里什么意思啊时不时交换 啊?如果是,那问题就是这里了
List1.AddItem bj(j)
End If
Next j
Next i
For i = 1 To UBound(bj)
Print "bj" & i & "=(" & bj(i) & ")"
Next i
End Sub
#3
ljyxxzj2007-11-05 21:43
对啊,那个交换有什么问题
#4
ljyxxzj2007-11-05 21:44
这个就是选择排序啊
#5
huyinhao22007-11-05 21:46

不知道

#6
ljyxxzj2007-11-07 17:39
这个也没人会吗
#7
蓝羽翼2007-11-09 13:25
我是初学者,睇都睇唔明。
1