关于VB数组 "冒泡排序法的疑问"{肯请前辈解答}
--------------------编程问答-------------------- a(9)怎么会有i=0 to 9? --------------------编程问答-------------------- For i = 0 To 9For j = i+1 To 9
--------------------编程问答-------------------- For i = 0 To 8
For j = i + 1 To 9
If a(i) < a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
--------------------编程问答-------------------- 楼主还没有理解冒泡排序的算法
仔细琢磨琢磨吧 --------------------编程问答-------------------- '问题一:for j=0 to 8-i改为for j=0 to 8也可以正常实现排序
Re:for j=0 to 8-i这样写完全是为了效率,循环次数减少,你改为for j=0 to 8循环次数增加,效率降低.功能同样可以实现.
'问题二:如果将上面一句改为for j=0 to 8那看再上在一句for i=0 to 9看起貌似没任何联系了
Re:问题二同问题一有联系,理解了便知道.
'问题三:事实证明既使将for j=0 to 8-i 改为for j=0 to 8程序功能正常,但for i=0 to 9一删除就排不了序了,很疑惑.
Re:你当前用的算法 需要两层循环来遍历所以元素 你删除了一层,遍历不了所有元素,当然排序也无从谈起...
还有就是:a(9)怎么会有i=0 to 9? --------------------编程问答--------------------
for i=0 to 9
if i<>0 then
if a(i)<a(i-1) then
temp=a(i)
a(i)=a(i-1)
a(i-1)=temp
i=i-2 '注意这一句
if i<0 then i=0
end if
end if
next
单层循环完成冒泡,原帖:
http://www.m5home.com/bbs/dispbbs.asp?boardid=14&id=338&page=&star=1
21楼. --------------------编程问答--------------------
老欺负小朋友 --------------------编程问答--------------------
强哦~~~不知道还可不可以再优化... --------------------编程问答--------------------
这本质上是插入排序,不是冒泡排序。
补充:VB , 数据库(包含打印,安装,报表)