一、题意
二、解答过程
方法:冒泡排序。(原因:内存限制32M,时间复杂度为O(n²)属于万级数量满足题意)
冒泡排序:把大的数据往后挪,像气泡一样两两比较以后不断往后挪。
NOTE:
while (scanf("%d",&n)!=EOF)
scanf
函数是有返回值的,输入完成返回1。在这里加入 while
循环是为了实现 多组数据输入的功能。一旦你输入完一组数据,回车时,就会跳出循环。
#include <iostream> #include<stdio.h> int main() { int n; int buf[100];//定义要保存的100个数 while (scanf("%d",&n)!=EOF)//输入n并实现多组数据的输入 { for (int i = 0; i <n ; ++i) { scanf("%d",&buf[i]);//输入待排序的数字 } //冒泡排序的主体 for (int i = 0; i <n ; ++i) { for (int j = 0; j <n-1-i ; ++j) { if(buf[j]>buf[j+1]) { int temp=buf[j]; buf[j]=buf[j+1]; buf[j+1]=temp; } } } //排序完输出数组 for (int i = 0; i <n ; ++i) { printf("%d ",buf[i]); } printf("\n"); } return 0; }