将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。
下面简单展示一下代码:
#include <iostream>
#include<stdio.h>
#define N 10
int main()
{
int a[N] = { 3,1,5,3,7,9,7,8,5,0 };
int i;
int j;
int t;
for (i = 0; i < N - 1; i++)
{
for (j = 0; j < N - 1 - i; j++)
{
if (a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
for (i = 0; i < N; i++)
{
printf("%-4d ", a[i]);
}
return 0;
}
最后,加油计科人!