JSK-133 冒泡排序排序

Posted 新海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSK-133 冒泡排序排序相关的知识,希望对你有一定的参考价值。

冒泡排序
冒泡排序是一种常见的排序算法,本题要求用冒泡排序算法对一组数字进行从小到大排序
输入:输入的是一行数字,就是我们需要排序的数字
输出:输出是从小到大排序好的数字,数字之间用空格分开
样例输入
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("
");

    return 0;
}
















以上是关于JSK-133 冒泡排序排序的主要内容,如果未能解决你的问题,请参考以下文章

python代码实现鸡尾酒排序(双向冒泡排序)

交换排序(冒泡排序快速排序的算法思想及代码实现)

请问这个冒泡排序代码,每一行都是啥意思呀,谢谢

java冒泡排序法代码

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)