排序是编写程序遇到的最常见的数据处理手段,冒泡排序又是一种最经典的排序算法。如下图所示,举一个最简单的例子,将数组1、3、4、5、2进行排序,第一步需要进行的是红色部分的比较,判断相邻的两个数字是否是正序数,即前面的数字小于后面的数字,如果是正序就再观察判断下一对数字,如果不是就用绿色的部分进行前后数字的交换,这样从左到右一遍后再重复多次则可自动完成排序。
用C++实现的代码如下:
#include<iostream>
using namespace std;
int A[5] = { 1,3,4,5,2 };
int main()
{
for (int loop = 1; loop < 5; loop++)
{
for (int i = 0; i < 4; i++)
{
if (A[i] > A[i + 1])
{
int tem = A[i + 1];
A[i + 1] = A[i];
A[i] = tem;
}
}
cout <<loop<<":"<< A[0] << A[1] << A[2] << A[3] << A[4] <<"\n"<< endl;
}
cout << "At last,"<<A[0]<< A[1] << A[2] << A[3] << A[4] << endl;
system("pause");
return 0;
}
输出结果:
当然如果是n个数,其loop的数字最大为n-1次。