冒泡排序
冒泡排序是一种常见的排序算法,本题要求用冒泡排序算法对一组数字进行从小到大排序
输入:输入的是一行数字,就是我们需要排序的数字
输出:输出是从小到大排序好的数字,数字之间用空格分开
样例输入
2 1 5 8 21 12
样例输出
1 2 5 8 12 21

问题链接JSK-133 冒泡排序
问题描述:(略)
问题分析
    冒泡排序虽然时间上不是好的算法,但却是广为人知的算法。
    这个题坑人之处在于没有说出数据的规模,暂时用1024试了一下,还好通过了。
    排序函数bubbleSort()的代码是从参考链接中CV过来的,没有修改。
程序说明
    还有一个坑,俺掉进去了。输出的“数字之间用空格分开”这句话的含义是,最后一个数的后面没有空格。最近写简单题,许多题这一点上不讲究,习惯了,一不小心…,唉!
参考链接Bubble sort
题记:功能要尽可能封装到函数。

AC的C语言程序如下:

/* JSK-133 冒泡排序 */

#include <stdio.h>

#define N 1024
int a[N];

void bubbleSort(int numbers[], int array_size)
{
  int i, j, temp;

  for (i = (array_size - 1); i > 0; i--)
    for (j = 1; j <= i; j++)
      if (numbers[j-1] > numbers[j]) {
        temp = numbers[j - 1];
        numbers[j - 1] = numbers[j];
        numbers[j] = temp;
      }
}

int main(void)
{
    int n = 0, i;

    // 读入数据
    while(scanf("%d", &a[n]) != EOF)
        n++;

    // 排序
    bubbleSort(a, n);

    // 输出结果
    for(i = 0; i < n; i++) {
        if(i == 0)
            printf("%d", a[i]);
        else
            printf(" %d", a[i]);
    }
    printf("\n");

    return 0;
}
10-03 21:18