标题:大家看看这个插入排序有什么问题?我是真被气到啦
只看楼主
a402730324
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1233
专家分:0
注 册:2005-12-1
 问题点数:0 回复次数:3 
大家看看这个插入排序有什么问题?我是真被气到啦

Dim num(9) As Integer
Dim i As Integer
Dim j, middle As Integer
For i = 0 To 9
num(i) = Rnd() * 90 + 10
Next i

For i = 1 To 9

If num(i) > num(i - 1) Then
middle = num(i)
'j=i-1
'Do While j >= 0
' If num(i) > num(j) Then
' num(j + 1) = num(j)
' j = j - 1
' Else
' Exit Do
' End If
'Loop

For j = i - 1 To 0 Step -1

If num(i) > num(j) Then
num(j + 1) = num(j)
Else
Exit For

End If
Next
num(j) = middle
End If
Next i

搜索更多相关主题的帖子: num Integer Dim middle For 
2007-10-11 11:52
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 

看不懂,数组排序,如果是vb2005那还不如直接

Dim num(9) As Integer
Dim i As Integer

For i = 0 To 9
num(i) = Rnd() * 90 + 10
Next i


Array.Sort(num)

不就ok了吗?


2007-10-12 13:55
tntzwc
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:216
专家分:0
注 册:2007-4-28
得分:0 

For j = i - 1 To 0 Step -1
If num(j + 1) > num(j) Then
Dim num1 As Integer
num1 = num(j)
num(j) = num(j + 1)
num(j + 1) = num1

Else
Exit For
End If
Next


努力了有可能失败,不努力一定失败!
2007-10-12 15:32
a402730324
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1233
专家分:0
注 册:2005-12-1
得分:0 
2楼的确实简单,不过我个人喜欢自己实现算法。谢谢啦
三楼说的我有写过,冒泡是可以实现的。可是我用插入却怎么也实现不了,那个就是我的源程序,我就是觉得没问题,大家帮帮忙,谢谢啦。

敢犯强汉者,虽远必诛!——陈汤 不知吾辈何时方能吐出此豪言壮语?
2007-10-12 22:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-176657-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.262550 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved