冒泡法稳定(数据之间相对的位置不发生改变),比较算法的一种。
他的主要算法思想是数与数之间两两比较,根据定下的规则进行数据的排列。
1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。
2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最的一个数据就“沉”到数组第N-1个位置。(每次遍历只会完成一个数值的到位)
3.N=N-1,如果N不为0就重复前面二步,否则排序完成。
纸上得来终觉浅,绝知此事要躬行。再简单的也要实现一遍!
#include <iostream>
using namespace std;
int main()
{ int a[11];
int i,j,t;
for(i=1;i<11;i++) //此行i的作用是将 i与输入次数挂钩 实现输入多个数据。并且在数组内部线性排列
cin>>a[i];
cout<<endl;
for(j=1;j<10;j++) //j的作用是进行一次计数 进行9轮的两两比较
for(i=1;i<10-j;i++) //这里i的作用是 每一轮两两比较时,需要进行10-j次两两比较
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;//在发现大数后交换位置使其下沉。
}
for(i=1;i<11;i++) //与输出挂钩。
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
谭浩强教授的例题,又看了一遍自己写出了。。嗯嗯嗯嗯