冒泡排序法,是最简单的一种排序方法,从第一个位置开始与相邻位置比较,判断是否需要交换位子。
第一趟从第一个位置开始,直到最后一个位置,A[n-1],确定最大(以升序为例子)的数放在最后一位,A[n-1]
第二趟,继续从第一个位置开始,倒数第二位,A[n-2],确定倒数第二大的数在倒数第二位A[n-2]
……
算法复杂度:冒泡排序是就地排序,比较稳定,其算法复杂度是O(n*n)
代码:
#include <iostream>
using namespace std;
#define MAXN 100
int a[MAXN + 1]; //全局变量存数组
int main()
{
cout<<"=========冒泡排序一=========="<<endl;
int i = 0, j;
int T;
int temp;
cout<<"请输入要对数据排序的个数:"<<endl;
cin>>T;
cout<<"请输入要排序的数据:"<<endl;
while(T--)
{
cin>>a[i];
i++;
}
int len=i;//数组有效长度
for(i=0;i<len-1;i++)
{
for(j=0;j<len-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
cout<<"排序后的数据是:"<<endl;
for(j = 0; j < len; j++)
{
cout<<a[j]<<" ";
}
cout<<endl;
return 0;
}