用起泡法对10个数排序
答案:5 悬赏:40 手机版
解决时间 2021-02-11 07:29
- 提问者网友:谁的错
- 2021-02-10 12:29
用起泡法对10个数排序
最佳答案
- 五星知识达人网友:西岸风
- 2021-02-10 12:54
这一层的for循环就是从一堆数中找出最大的数,把最大的数给最后面一个数,就这题而已,第一次for循环执行的是从a[0]---a[9]中找出最大的数,并且把这个最大的数赋给a[9];第二次循环是从a[0]---a[8]中(这时候就不用管a[9]了)找出最大的数把它赋给a[8],依次类推!就是这样的!看来你要多给点分我了!
全部回答
- 1楼网友:轻熟杀无赦
- 2021-02-10 14:27
for(j=0;j<9;j++)
如果换成j〈=9就是自己和自己比了
for(i=0;i<9-j;i++)
没仔细去想
但我觉得应该是for(i=0;i 你这程序从哪抄来的?追问这题目是教科书上抄下来的。呵呵追答应该是一路比上去,而不是这边往上,那边往下,直觉上。
没仔细想,除非是优化算法。
如果换成j〈=9就是自己和自己比了
for(i=0;i<9-j;i++)
没仔细去想
但我觉得应该是for(i=0;i
没仔细想,除非是优化算法。
- 2楼网友:鱼芗
- 2021-02-10 13:47
从0数到8不就是9次么?
这两行感觉格式很别扭。。。
第二个问题看不懂 感觉你想乱了。第一轮 j=0,只需i<9 i会加到8,8>5的 显然。。。
其他行还没细看,教材不水的话应该没错。
建议在纸上多写写过程啥的,清晰了以后再看就舒服多了。
这两行感觉格式很别扭。。。
第二个问题看不懂 感觉你想乱了。第一轮 j=0,只需i<9 i会加到8,8>5的 显然。。。
其他行还没细看,教材不水的话应该没错。
建议在纸上多写写过程啥的,清晰了以后再看就舒服多了。
- 3楼网友:愁杀梦里人
- 2021-02-10 13:16
for(j=0;j<9;j++)
考虑数列10 9 8 7 6 5 4 3 2 1
实际上冒泡排序每做一次循环,就会把最大的数移到最右边,
即按j 跑一次以后,就变成了9 8 7 6 5 4 3 2 1 10了~
而对于for(i=0;i<9-j;i++)
实际上就等于是每次排除了后面已经确定是最大的数。
因为将最大的数移到最后以后,就等于无序的区间缩小了。。。
考虑数列10 9 8 7 6 5 4 3 2 1
实际上冒泡排序每做一次循环,就会把最大的数移到最右边,
即按j 跑一次以后,就变成了9 8 7 6 5 4 3 2 1 10了~
而对于for(i=0;i<9-j;i++)
实际上就等于是每次排除了后面已经确定是最大的数。
因为将最大的数移到最后以后,就等于无序的区间缩小了。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯