用冒泡法对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; }