能不能告诉我在c语言,冒泡排序中内循环里 9-j是什么意思 for(i=0;i<9-j;i++)。谢谢!

2024-12-13 01:04:08
推荐回答(5个)
回答1:

10个数,只要比较9趟即可全部排序,所以第一个for()循环是for(j=0;j<9;j++)。

for(i=0;i<9-j;i++)的意思是每一趟 两两比较的次数 ,如 j=0时,即第一趟,10个数。两两比较9次,然后依次如此下去.......

回答2:

当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 那么 你不能保证前面已经所得最大值在最后面的、基本就是这个意思!

回答3:

for(i=0;i<9-j;i++)你是从小到大排序的。每一次排序都会把最大的排到最后,第二次就不用比较它了因此比较剩余9数中的最大之后是比较剩余8个等等类推。其实for(i=0;i<9;i++)这样也正确,之所以那样是为了提高效率罢了。

回答4:

J<9是只需排8趟,每趟确定一个最值,当二重循环时每次都会少比较一个数,所以9-j

回答5:

10个数,只要比较9趟即可全部排序,所以第一个for()循环是for(j=0;j<9;j++)。for(i=0;i<9-j;i++)的意思是每一趟两两比较的次数,如j=0时,即第一趟,10个数。两两比较9次,然后依次如此下去.