排序(超时错)
排序时限:1000MS
内存限制:65536KByte
总提交:1652 测试通过:415
题目描述
给出N个不重复数,请按照从小到大的顺序输出。
输入
首先给出T,说明下面将有T组数据。
每组数据先给出N(N <= 10000),接着给出N个数,每个数不大于50000。
输出
每组按顺序输出,一个数占一行。
样例输入
2
10
11 2 42 5 36 48 16 44 38 4
5
5 4 3 2 1
样例输出
2
4
5
11
16
36
38
42
44
48
1
2
3
4
5
提示
开一个大数组,将有数的地方做上标记,最后从头到尾遍历一次数组,将有标记的数输出即可。
#include<stdio.h>
int main()
{
int i,b,k,z,temp;
long j[10001];
scanf("%d",&b);
while(b!=0)
{scanf("%d",&i);
for(z=0;z<i;z++)
{
scanf("%d",&j[z]);
}
for(k=0;k<=i-2;k++)
{
for(z=0;z<i-k-1;z++)
{if(j[z]>j[z+1])
{temp=j[z],j[z]=j[z+1],j[z+1]=temp;}}
}
for(z=0;z<i;z++)
{
printf("%d\n",j[z]);
j[z]=0;}b--;}
return 0;
}
是不是因为冒泡法太耗时间了?但我只懂冒泡法啊。。