hdu 1425 sort

这个题目比较简单,主要是想写写快排练练手。。。

  题目传送门

 1 #include<stdio.h>
 2 #define swap(x,y){int t=x;x=y;y=t;}
 3 int a[1000000];
 4 void quicksort(int l, int r)
 5 {
 6     int i,j,mid;
 7     i = l;j=r;mid=a[(l+r)/2];
 8     do
 9     {
10         while(a[i]>mid)i++;
11         while(a[j]<mid)j--;
12         if(i<=j)
13         {
14             swap(a[i],a[j]);
15             i++;j--;
16         }
17     }while(i<j);
18     if(l<j) quicksort(l,j);
19     if(i<r) quicksort(i,r);
20 }
21 
22 int main()
23 {
24     int i,n,m;
25     while(scanf("%d%d",&n,&m)==2)
26     {
27         for(i=0;i<n;i++)
28             scanf("%d",&a[i]);
29         quicksort(0,n-1);
30         for(i=0;i<m;i++)
31         {
32             if(i==m-1) printf("%d\n",a[i]);
33             else printf("%d ",a[i]);
34         }
35     }
36     return 0;
37 }

 

posted @ 2013-05-10 09:07  飞向梦  阅读(145)  评论(0编辑  收藏  举报