C++之冒泡排序

时间:2022-12-29 20:02:11

用冒泡法对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;
}
C++之冒泡排序