时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:27571
解决:8957
题目描述:对输入的n个数进行排序并输出。
输入:输入的第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。
输出:可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。 每组测试数据的结果占一行。
样例输入:41 4 3 2样例输出:1 2 3 4 来源:2006年华中科技大学计算机保研机试真题
方法一:冒泡排序法(C语言)
#include <stdio.h>int main(){ int n; int i,j,tmp; int buf[100]; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&buf[i]); } for(i=0;i<n;i++) { for(j=0;j<n-1-i;j++) { if(buf[j]>buf[j+1]) { tmp=buf[j]; buf[j]=buf[j+1]; buf[j+1]=tmp; } } } for(i=0;i<n;i++) { PRintf("%d ",buf[i]); } printf("/n"); } return 0;}方法二:快速排序法(C使用qsort函数)
#include <stdio.h>#include <stdlib.h>int cmp(const void *a,const void *b){ return *(int*)a-*(int*)b;}int main(){ int n; int i; int buf[100]; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&buf[i]); } qsort(buf,n,sizeof(int),cmp); for(i=0;i<n;i++) { printf("%d ",buf[i]); } printf("/n"); } return 0;}方法三:C++快速排序法(使用sort函数)#include <stdio.h>#include <algorithm>using namespace std;int main(){ int n; int i; int buf[100]; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&buf[i]); } sort(buf,buf+n); for(i=0;i<n;i++) { printf("%d ",buf[i]); } printf("/n"); } return 0;}
新闻热点
疑难解答