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 }