作者:Cy章健Mr_189 | 来源:互联网 | 2023-05-18 21:10
【疑问】
老师,你好。
关于项目5 排序,根据冒泡法排序以下写法
for (i=0;i for(j=0;j
就可以,你为什么要这样写:
for (i=0;i
而且,两种写法运行结果一样。
【回答】
很高兴你能关注到这个细节,这是一个好感觉。对n个数的排序,从冒泡的思想看,需要冒n-1次泡,只剩1个了,自然不用再冒泡,第一层关于i的循环就是控制这的,所以从0到n-2,即i
for(j=0;j<9;j++) for(i=0;i<9-j;i++)
对10个数的排序,我在讲课中用过
for(j=1;j<10;j++) for(i=1;i<10-j;i++)
i和j的初值是1,定义a[11]放10个数,实际a[0]元素是不用的。
至于你的结果还对,需要上机时单步跟踪一下,多余操作恰好没有破坏已有的正确结果,还是选用的测试数据恰好对此错误无所谓。这实际上给你提醒的是,程序通过编译后,一组数据运行正确,往往还潜藏危机。
设计测试用例是个技术活,先意识到这一点,后面再长进。程序设计的门道还不少,这是她的魅力所在,继续进步吧。