冒泡法排序
步骤:
(1)从a[0]开始,对两两相邻的元素进行N-1次比较,若前面的元素 > 后面的元素,则交换位置,一次遍历后最大的数在最后一位 a[N-1] 中;
(2)对a[0]~a[N-2]中的数重复(1)步骤;
(3)共进行 N-1 次遍历,可将所有数从小到大排列。
代码:
#define N 15
#include <iostream>
using namespace std;
int main()
{
int a[N], i, j, t;
for (i = 0; i < N; i++)
{
a[i] = rand() % 101;
cout << a[i] << " ";
}
for(j=0;j<N-1;j++) //步骤(2)
for (i = 0; i < N - 1 - j; i++) //步骤(1)
if (a[i] > a[i + 1])
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
cout << "\nafter:\n";
for (i = 0; i < N; i++)
cout << a[i] << " ";
return 0;
}
运行结果: