10个数,只要比较9趟即可全部排序,所以第一个for()循环是for(j=0;j<9;j++)。
for(i=0;i<9-j;i++)的意思是每一趟 两两比较的次数 ,如 j=0时,即第一趟,10个数。两两比较9次,然后依次如此下去.......
当j=0时 9-j=9 通过内部的for循环最后把最大值赋值给a[9]当j=1时 9-i=8 把最大值赋值给a[8]------------------------------当j=8时 9-8=1 最大值赋值给a[1]剩下的就是a[0] 如果没有9-j 那么 你不能保证前面已经所得最大值在最后面的、基本就是这个意思!
for(i=0;i<9-j;i++)你是从小到大排序的。每一次排序都会把最大的排到最后,第二次就不用比较它了因此比较剩余9数中的最大之后是比较剩余8个等等类推。其实for(i=0;i<9;i++)这样也正确,之所以那样是为了提高效率罢了。
J<9是只需排8趟,每趟确定一个最值,当二重循环时每次都会少比较一个数,所以9-j
10个数,只要比较9趟即可全部排序,所以第一个for()循环是for(j=0;j<9;j++)。for(i=0;i<9-j;i++)的意思是每一趟两两比较的次数,如j=0时,即第一趟,10个数。两两比较9次,然后依次如此下去.