#include <stdio.h>
//冒泡排序
//从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最小的一个。这个数就会从序列的最右边冒出来。
//以从大到小排序为例,第一轮比较后,所有数中最大的那个数就会浮到最左边;第二轮比较后,所有数中第二大的那个数就会浮到正数第二个位置……就这样一轮一轮地比较,最后实现从大到小排序。
//比较时,每轮中第 n 次比较是新序列中第 n 个元素和第 n+1 个元素的比较(假如 n 从 1 开始)。
int main()
{
int a[] = { 900, 2, 3, -58, 34, 76, 32, 43, 56, -70, 35, -234, 532, 543, 2500 };
int n; //存放数组a中元素的个数
int i; //比较的轮数
int j; //每轮比较的次数
int buf; //交换数据时用于存放中间数据
n = sizeof(a) / sizeof(a[0]);//a数组的大小除以a数组中第一个元素的大小得到a数组元素的个数
for (i = 0; i < n - 1; i++)//比较n-1轮
{
for (j = 0; j < n - 1 - i; j++)//每轮比较n-1-i次
{
if (a[j] < a[j + 1])
{
buf = a[j];
a[j] = a[j + 1];
a[j + 1] = buf;
}
}
}
for (i = 0; i < n; ++i)
{
printf("%d\x20", a[i]);
}
printf("\n");
return 0;
}
11-08
486
09-16