这个冒泡排序和随机数生成同时进行的代码不对吗
vb吧
全部回复
仅看楼主
level 5
为什么list1前5个都是0?
2023年11月08日 11点11分 1
level 5
让列表框里面生成10个随机数字,并且以冒泡排序的方式由小到大将数字排列开来。
正确的
代码写法究竟是什么呢?有没有大佬能分享与否嘛[呵呵]
2023年11月08日 11点11分 2
level 5
2023年11月08日 11点11分 3
吧务
level 14
不能同时,要先生成10个完了再排序,不然a数组定义之后没生成的位置就是0
2023年11月08日 11点11分 4
大佬,能分享一下您的写法吧[小红脸]
2023年11月08日 11点11分
level 15
For i = 1 To 10
'生成随机数
Next i
For i = 1 To 9
For j = 1 To 10 - i
'冒泡排序
Next j
Next i
For i = 1 To 10
'输出
Next i
这三个循环必须并列写,不能合成一个,因为生成数字时后面没生成的位置还是0,不应该参与排序;排序时是从后往
前排
的,排到一半时前面的数还不在正确的位置,不能输出
如果你用的是插入排序,倒是可以合成一个循环来解决,每生成一个数就找到它所在的位置,并且插入到这个位置,就可以解决问题
2023年11月08日 12点11分 5
冒泡排序是不是代码也要改成if a(j) <a(i)then t= a(i):a(i)= a(j): a(j)= t
2023年11月08日 12点11分
@贴吧用户_aeMQJMJ 这么改就不是冒泡排序了,每次比较两个相邻数字的才是冒泡排序
2023年11月08日 12点11分
@初音✨七奈 那怎么改
2023年11月08日 12点11分
@贴吧用户_aeMQJMJ 不用改,你写的排序代码是对的
2023年11月08日 12点11分
level 8
冒泡排序:相邻两数比较
if a(j) >a(j+1)then swap a(j),a(j+1)
2023年11月08日 13点11分 6
双层,怎么写成单层了。
2023年11月08日 13点11分
你这真不如直接说楼主写的就是对的……
2023年11月08日 13点11分
每趟比较后,把最大的数放在最后面,但这并不能保证前面的一定是最小的,所以需要用内层For j=1 to 10-i(i个数字已经排好序,不再进行比较)
2023年11月08日 13点11分
1