用冒泡法对10个整数由大到小排序,10个整数用cin输入
冒泡排序顾名思义像冒泡泡一样排序,从头冒到尾。首先,一次比较两个元素,如果他们的顺序错误就把他们的位置换一下,然后在比较下一组,直到没有需要交换的,这时候说明已经排序完成。
它的算法复杂度:如果他本来就排好序了,这说明只需要扫描一趟就可以完成排序,此时需要比较n-1个数,算法复杂度为O(n);如果数列是反序的,那么这时需要扫描n-1趟,每次比较n-i个数,且每次比较都必须移动关键字。这时算法时间复杂度为O(n^2)。
#include<iostream>
using namespace std;
int main()
{
int a[10];//定义一个数组,存放输入的10个数
int i,j,t;//t用于存放交换的数
cout<<"please enter the numbers:"<<endl;
for(i=0;i<10;i++)
{
cin>>a[i];//输入10个数
}
cout<<endl;
for(j=0;j<9;j++)//扫描n-1次
for(i=0;i<9-j;i++)//每次比较的次数
if(a[i]>a[i+1])//交换语句
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
cout<<"the sorted numbers:"<<endl;
for(i=0;i<10;i++)//输出排序后数据
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/ec5b9c180ee9249d7ea5ba38b4ee5ee1.png)