背景:
#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");
}
}
只是把刚才那题简单修改,没啥改变。水过。