c语言冒泡法排序,其中第九行if(a[j]>a[j+1])开始,为什么不是if(a[i]>a[i+1]) 呢

#include<stdio.h>intmain(){inti,j,t,a[10];printf("Pleaseinput10integers:\n");for(i=0;... #include <stdio.h>
int main()
{int i,j,t,a[10];
printf("Please input 10 integers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++) /* 冒泡法排序 */
for(j=0;j<10-i-1;j++)
if(a[j]>a[j+1])
{t=a[j];/* 交换a[i]和a[j] */
a[j]=a[j+1];
a[j+1]=t;
}
展开
 我来答
sun_siliang
2011-03-15 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4518万
展开全部
这是冒泡排序算法决定的。冒泡排序算法共需要n趟比较(n为元素个数),每趟两两比较相邻元素。外循环变量i决定趟数(这里i=0...9),内循环变量j控制每趟比较的元素(这里j=0...9-i),因此是if(a[j]>a[j+1])开始。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友99b336a
2011-03-15 · 超过18用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:58.7万
展开全部
这里两层循环的意思是
i那一层是用来管理冒泡的长度
比如第一次冒泡比较9次,最小的数到了最后一个
第二冒泡你就不需要再看最好一个了,只需要再比较8次就好了,i就是用来记录这个的

j那一层循环才是真正的冒泡算法,比较,交换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
back_bin
2011-03-15 · TA获得超过213个赞
知道答主
回答量:101
采纳率:0%
帮助的人:89.2万
展开全部
当然不是,你的冒泡法是把最大的沉下去,若if(a[i]>a[i+1])这样的话,那不在内层循环都是比较a[0]和a[1](第一次循环),而且最后,也就是把最大的数沉到最下面啦!并没有完成排序
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式