您的位置:首页 > 其它

(HDOJ1040)As Easy As A+B

2013-04-09 23:59 405 查看
[align=left]Problem Description[/align]
These days, I am thinking about a question, how can I get a problem as easy as A+B? It is fairly difficulty to do such a thing. Of course, I got it after many waking nights.
Give you some integers, your task is to sort these number ascending (升序).
You should know how easy the problem is now!
Good luck!

[align=left]Input[/align]
Input contains multiple test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contains an integer N (1<=N<=1000 the number of integers to be sorted) and then N integers follow in the same line.
It is guarantied that all integers are in the range of 32-int.

[align=left]Output[/align]
For each case, print the sorting result, and one line one case.

[align=left]Sample Input[/align]

2

3 2 1 3

9 1 4 7 2 5 8 3 6 9

[align=left]Sample Output[/align]

1 2 3

1 2 3 4 5 6 7 8 9

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<string.h>

int a[1001];

int partitions(int a[],int low,int high)
{
int pivotkey=a[low];
while(low<high)
{
while(low<high && a[high]>=pivotkey)
--high;
a[low]=a[high];
while(low<high && a[low]<=pivotkey)
++low;
a[high]=a[low];
}
a[low]=pivotkey;
return low;
}

void qsort(int a[],int low,int high)
{
int pivottag;
if(low<high)
{
pivottag=partitions(a,low,high);
qsort(a,low,pivottag-1);
qsort(a,pivottag+1,high);
}
}
void deal(int a[], int n)
{
int i;
qsort(a,0,n-1);
for(i=0; i<n; i++)
{
if(i>0)
printf(" ");
printf("%d",a[i]);
}
printf("\n");

}

void solve()
{
int T,i,n;
while(scanf("%d",&T)!=EOF)
{
while(T--)
{
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
deal(a,n);
}
}
}

int main()
{
solve();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: