冒泡排序法C++算法

void sort(int a[],int n)
{
int temp;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;

}
}

}
}

求解这个冒泡算法到底哪里错了。。。。。。。。。。。。。。。

第1个回答  推荐于2017-10-02
//以下就是C++冒泡排序
int* BubbleSort(int* ary, int length)
{
int i, j, tmp;
for(i=0; i<length-1; i++)
{
tmp = ary[i];
for(j=length-1; j>i; j--)
{
//找到数组中最小的数,并交换
if(tmp > ary[j])
{
ary[i] = ary[j];
ary[j] = tmp;
tmp = ary[i];
}
}
}
return ary;
}
第2个回答  推荐于2017-09-28
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;改为:
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;本回答被提问者采纳
第3个回答  2012-09-04
建议形参中int n去掉,在函数里面加上int n=strlen(a);
第一个循环for(i=0;i<n;i++)
第二个循环for(j=0;j<n-i;j++)
第4个回答  2012-09-04
第一个for循环改为:for(int i=0;i<n;i++)
第5个回答  2021-03-16

经典排序之冒泡排序

相似回答