热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

关于冒泡排序中一个细节的答疑

【疑问】老师,你好。关于项目5排序,根据冒泡法排序以下写法for(i0;i<number;i++)for(j0;j<number-i;j++)就可

【疑问】

老师,你好。

  关于项目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]元素是不用的。
  至于你的结果还对,需要上机时单步跟踪一下,多余操作恰好没有破坏已有的正确结果,还是选用的测试数据恰好对此错误无所谓。这实际上给你提醒的是,程序通过编译后,一组数据运行正确,往往还潜藏危机。

  设计测试用例是个技术活,先意识到这一点,后面再长进。程序设计的门道还不少,这是她的魅力所在,继续进步吧。

 

 

 


推荐阅读
author-avatar
Cy章健Mr_189
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有