首先我们有如下 一个数组
int a[] = { 3,4,6,7,1,2,8,9,5,0 };
数组中的数据处于乱序状态,我们需要将数组a的十个元素按照值的大小以 升序进行排列,这个处理过程需要 多次遍历整个数组。每次遍历,相邻的两个元素(0号元素与1号元素,1号元素与2号元素等等)都要做比较,如果两个数据处于升序或者相等,就不动他们,继续向后遍历,如果一对数据 处于降序,就调换它们在数组中的位置。
完整实现代码如下
#include <stdio.h>
#define N 10
int main()
{
int a[N] = { 3,4,6,7,1,2,8,9,5,0 };
int temp, i, j;
for (i = 0; i < N - 1; i++) //进行9次比较
for (j = 0; j < N - i - 1; j++) //在每次中进行10-i-1次比较
if (a[j] > a[j + 1]) //按升序排序,降序用<
{
temp = a[j + 1]; //交换相邻的两个元素
a[j + 1] = a[j];
a[j] = temp;
}
printf("排序后结果为:\n"); //输出排序后的结果
for (i = 0; i < N; i++)
printf("%d ", a[i]);
}