为了账号安全,请及时绑定邮箱和手机立即绑定

请教关于冒泡排序的问题

以下是学习中遇到三个不明白的问题 , 想请教朋友来回答一下:

题目: 对  10 个分数排序.

  1. 第一个 for循环中为什么要用  if 判断 (i !=9 ),不是直接打印就行吗?

  2. 冒泡排序循环外层为什么用 for(i=8;;), 等于9不行么? 

    还有就是所控制  " 每趟比较的最大下标" 是什么意思?
    (原理不是 让  i = 9 然后不停对上一次排完序的数组从新排序吗?)

 3.    如 1, 为什么排序后还是要用 i !=9   ?

    纠结 ...  希望有经验的朋友能够帮忙解惑一下 !

正在回答

1 回答

  1. i != 9 的时候,printf打印出的是“数字和一个空格”,当 i == 9 ,也就是最后一个数时,就不打印后面的空格了。这纯粹是为了打印出来好看。

  2. 看内层循环,第一次内层循环让第1个数依次和后面的数相比较,直至比到第10个数,一共比9次。第二次内层循环还是从第1个数开始依次向后比较,这次就不用比最后一个数了,因为经过上次比较后,最后一个数肯定是最大的了,所以这次一共比较8次。第三次内循环一共比较7次......最后一个内循环就只要比较前两个数就可以了。 这样内层循环一共执行了9次,外循环就是用来控制这9次比较的,i从8递减到0就是9次。

  3. 和第一问一样。

5 回复 有任何疑惑可以回复我~
#1

羽丶 提问者

原来是这样, 我明白了 ,谢啦!
2015-10-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

请教关于冒泡排序的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信