HDU 2673 shǎ崽 OrOrOrOrz

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2673

排序题

刚讲了归并排序

就用归并排序做

View Code
 1 #include<stdio.h>
 2 void qsort(int a[],int l,int r)
 3 {
 4     int x=a[l],i=l,j=r;
 5     if(l>=r)return;
 6     while(i<j)
 7     {
 8         while(i<=j&&a[j]>=x)
 9         j--;
10         a[i]=a[j];
11         while(i<j&&a[i]<=x)
12         i++;
13         a[j]=a[i];
14     }
15     a[i]=x;
16     qsort(a,l,i-1);
17     qsort(a,i+1,r);
18 }
19 int main()
20 {
21     int i,n,a[10001],t;
22     while(~scanf("%d",&n))
23     {
24         t=n;
25         for(i=0;i<n;i++)
26     {
27         scanf("%d",&a[i]);
28     }
29     qsort(a,0,n-1);
30     if(n%2!=0)
31     {
32         for(i=0;i<n;i++)
33     {
34         printf("%d",a[n-1]);n--;
35         if(i!=n)
36         {
37             printf(" ");
38         }
39         if(i!=n)
40         {
41             printf("%d ",a[i]);
42         }
43     }
44     }
45     else{
46         for(i=0;i<n;i++)
47     {
48         printf("%d ",a[n-1]);n--;
49         if(i!=(t-1)/2)
50         {
51             printf("%d ",a[i]);
52         }
53         else
54         printf("%d",a[i]);
55     }
56 
57     }
58     printf("\n");
59     }
60     return 0;
61 }
posted @ 2012-08-03 19:48  时光旅行的懒猫  阅读(260)  评论(0编辑  收藏  举报