永发信息网

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

答案:5  悬赏:60  手机版
解决时间 2021-02-10 15:22
#include
void main()
{
int i;
int j;
int t;
int a[10]={9,8,5,4,2,0,34,45,15,432};
for(i=0;i<10;i++)
{
printf("%d\n",a[i]);
}
printf("__________\n");
for(j=0;j<9;j++)
{
for(i=0;i<9-j;i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d\n ",a[i]);
}}
最佳答案
10个数,只要比较9趟即可全部排序,所以第一个for()循环是for(j=0;j<9;j++)。

for(i=0;i<9-j;i++)的意思是每一趟 两两比较的次数 ,如 j=0时,即第一趟,10个数。两两比较9次,然后依次如此下去.......
全部回答
10个数,只要比较9趟即可全部排序,所以第一个for()循环是for(j=0;j<9;j++)。for(i=0;i<9-j;i++)的意思是每一趟两两比较的次数,如j=0时,即第一趟,10个数。两两比较9次,然后依次如此下去.
for(i=0;i<9-j;i++)你是从小到大排序的。每一次排序都会把最大的排到最后,第二次就不用比较它了因此比较剩余9数中的最大之后是比较剩余8个等等类推。其实for(i=0;i<9;i++)这样也正确,之所以那样是为了提高效率罢了。
当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 那么 你不能保证前面已经所得最大值在最后面的、基本就是这个意思!
J<9是只需排8趟,每趟确定一个最值,当二重循环时每次都会少比较一个数,所以9-j 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
楼房厨房在哪个方位好
天堂2手游武器怎么传承 武器传承玩法详解
房管局测量面积和房地产开发商预售面积不一致
张瘦子烧烤地址有知道的么?有点事想过去
一朝被蛇咬的正确读音
腕横纹尺侧端,尺侧腕屈肌腱桡侧凹陷中的腧穴
郑州市学生上郑州大学是否加分?
中国电信(官阳营业厅)地址在哪,我要去那里办
义乌市振华小学教育集团东方校区地址有知道的
企业法人需要签合同,去市人力资源那边进行报
偶像对青少年的影响 利与弊都可以
上海永久电动车自行车在哪里啊,我有事要去这
1952年的中国人民银行的五万元存折,能否兑取
中国民生银行上海福山支行在什么地方啊,我要
梁园区商丘茶品天下我想知道这个在什么地方
推荐资讯
圣经中有没有明确反对女女相爱的?
兴飞炒货喜糖地址在什么地方,想过去办事
想给一家三口上重疾和意外保险,请推荐险种
中国移动的号码能用中国电信的移动wf吗
广西大学公共管理学院怎么样?
小米5换屏幕换后盖大概多少钱有知道的吗
比较a/(a^2+1)和a^2-2a+2的大小
求人和。。 受百度云可买
粤东油手续费多少
休闲棋牌地址好找么,我有些事要过去
我的名字是张宇婷,能给我写个藏头诗吗?
阳光鲜奶永外正街专卖店这个地址在什么地方,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?