背景:
#include<stdio.h> void quicksort( int str[],int n); void quicksort( int str[],int n) { int p1=0,p2=n-1; int key=str[p1]; if(p1<p2) { while(p1<p2) { for(;p1<p2;--p2) { if(str[p2]>key) { str[p1++]=str[p2]; break; } } for(;p1<p2;++p1) { if(str[p1]<key) { str[p2--]=str[p1]; break; } } } str[p1]=key; quicksort(str,p1); quicksort(str+p1+1,n-p1-1); } } int str[100001]; int main(void) { int n,m; while(scanf("%d %d",&n,&m)==2&&n*n+m*m!=0) { for(int i=0;i<n;++i) { scanf("%d",&str[i]); } quicksort(str,n); if(n>=m) { int k=1; for(int l=0;l<=m-1;++l) { if(k) { printf("%d",str[l]); --k; } else { printf(" %d",str[l]); } } } else { int kl=1; for(int l=0;l<=n-1;++l) { if(kl) { printf("%d",str[l]); --kl; } else { printf(" %d",str[l]); } } } printf("\n"); } }
只是把刚才那题简单修改,没啥改变。水过。