for(i=0;i<n-1;i++);for(j=i+1;j<n;j++)用于计算sort的函数,为什么是j=i+1而不是j=0

 我来答
百度网友6676ed513
2012-11-10
知道答主
回答量:28
采纳率:0%
帮助的人:17.3万
展开全部
冒泡排序吧?因为前面i个数都已经排好顺序了不需要重新比较了 j=0开始的话也是对的就是相对会慢一点
追问
#include 
void sort(int x[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(x[i]<x[j])
{t=x[i];x[i]=x[j];x[j]=t;}
}
int main()
{
int a[4],i;
for(i=0;i<4;i++)
scanf("%d",&a[i]);
sort(a,4);
for(i=0;i<4;i++)
printf("%2d",a[i]);
}整个程序在这,但是J=0的话不能全部排序,只能个别排序
追答
好吧是我讲错了 不过还是因为前面i个数都已经排好顺序了
冒泡就是先找到最大的数放到第一位 然后找到第二大的数放到第二位 但这时因为第一大的数已经在第一位了 所以第二大的数就是除了第一位的最大的数 以此类推 第n大的数就是除了前n-1个数中最大的数 所以j要从i+1开始
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式