冒泡排序算法

//@冒泡排序算法
//@author: bos
//@date: 2012.9.20

//算法思想:从最后的数字开始依次与前面的两两比较,并将
//			较大(较小)放在前面(交换位置),一趟排序
//			就将最大(最小)的数字排在了前面。依次进行
//			n-1趟排序,且前面排好的不管 。

#include <iostream>
using namespace std;
void Swap(int &x, int &y)
{
	int t;
	t= x;
	x= y;
	y= t;
}
void BubbleSort(int a[], int n)
{
	int i, j;
	for(i= 1; i< n; ++i)//n-1趟排序
	{
		
		for(j= n-1; j> i- 1; j--)//前面i个已经排好序
		{
			if(a[j]> a[j- 1]) Swap(a[j], a[j- 1]);
		}
	}
}
int main()
{
	int a[100];
	int n;
	cin>>n;
	int k;
	for(k= 0; k< n; k++) cin>>a[k];
	BubbleSort(a, n);
	for(k= 0; k< n; k++) cout<<a[k]<<' ';
	cout<<endl;
	return 0;
		
}

  

原文地址:https://www.cnblogs.com/ibosong/p/2695377.html