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 冒泡排序排序的主要内容,如果未能解决你的问题,请参考以下文章