冒泡排序法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

经典排序之冒泡排序

C++ 冒泡排序法
BubbleSort(s,10);cout<<"排序结果:";print(s,10);system("pause");}

【C++算法】五大基础排序算法
冒泡排序的基本思想是通过比较相邻元素,将待排序区域的最值交换到左端(或右端)。以升序排序为例,从左往右,每一趟冒泡都从最左端开始,相邻元素两两比较,若不满足升序,则交换。优化点在于,如果一趟排序下来,没有发生'交换'操作,则说明已经排好序,此时可以提前退出程序。选择排序的基本思想是在...

c++10个整数怎么进行排序?
}\/\/一种10个数,沉下去9个最大的数,就可以排序了 for(i=0;i<10;i++){ cout<<a[i]<<'\\t';} cout<<endl;return 0;} 分析:通过两两比较,第一次排序,会将最大的数88放到最后面a[9]中。。。第九趟,a[1]=2,然后就排序完成 选择排序法 原理:选择排序的基本思想是:每一趟在...

C++冒泡排序的基本思想和步骤
冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面。即首先比较第1个和第2个数,将大数放前,小数放后。然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后,此时第一趟结束,在最后的数必是所有数中的最小数。重复...

用C++语言编写程序实现:设计一个函数模板,实现用冒泡法对10 个某...
冒泡排序算法的运作如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到...

...学生有3门课程.使用冒泡算法实现对学生按成绩排序.(使
1 - i; j++){if (num[i] < num[j]){num[i] = num[j] - num[i];num[j] = num[j] - num[i];num[i] = num[j] + num[i];}}}cout << "冒泡排序后,结果如下" << endl;for (int i = 0; i < size; i++){cout << num[i] << " ";}cout << endl;

C++中怎样写一个判断三个数大小的程序?
首先用scanf获取输入的三个double型变量,存入arr数组。然后利用冒泡排序法将数组进行排序。冒泡排序法:遍历数组第0到N-1个元素,依次比较相邻的两个元素,使较大的那个向前移。实现代码如下:include <iostream>#define N 3using namespace std;int main(){double arr[N];double temp;cout<< "A = ...

跪求双向冒泡排序的程序(C++)
void bidirectionalTaxis(int numbers[],int n){ bool flag=true; \/\/排序条件 int temp;int zCount=(n-1),fCount=0;\/\/正反数计数初始化 while(flag){ \/\/从反数计数点开始 遍历到n-1,即不遍历已反向排好的 for(int i=fCount;i<zCount;i++) \/\/冒泡法正向遍历找最大值 { if(numbers[...

选择排序 冒泡排序 C语言
从上面两种可以看出,这两个方法选择排序更高速,但是某些数据可能使得冒泡排序更高速,即交换次数较少,可以看出算法快慢和数据还是有一定关系的。至于代码,我写了一个选择排序法的,c++环境运行通过:请将下面代码复制粘贴到程序写入窗口,按下Ctrl+A全选后,按下Alt+F8即可自动对齐格式:include<stdio.h...

C++之如何将N个实数由大到小排序
回答:n个实数用数组a描述。 本例提供用选择排序方法与冒泡排序方法分别实现n个实数由大到小排序的函数搜索。 算法一:选择排序。 选择排序需反复进行求最大值与交换两个数这两种住房基本操作。 对a[o]、a[1]、…、a[n一1]由大到小排序:先求所有数的最大值,然后将最大值与a[o]进行交换;...

相似回答