长弓长
2015-10-01 10:45
解释下这句为什么从8到0
for(i=8;i>=0;i--) //控制每趟比较的最大下标
首先执行i=8,再执行for(j=0, j<=i, j++)的循环条件是 j<=i 也就是 j<=8,
当内嵌循环执行到 j=8;比较完 arr[8]和arr[8+1]之后,数组中最大那个数就放进最后一个arr[[9]中了,那么这个数在下一轮循环中就不用再比较。
然后再外执行 i--,也就是 i=7,内循环条件 j<=7,比较的最大下标就是7 即 arr[7] 和arr[7+1]比较,就不用再去和最大的arr[9]比较了
//这是冒泡排序的基本特征,先找出数组中最大的数放在最后面,不用再执行比较
假如有5个数要比较,你只要比好了4个数,那剩下的一个就不用再排了
i等于8,当i大于等于0时为真(执行循环语句),然后i自减
C语言入门
926021 学习 · 20793 问题
相似问题
回答 5