您的位置:首页 > 其它

排序练习——找出前m大的数字

2015-02-07 14:25 274 查看

题目描述

给定n个数字,找出前m大的数字。

输入

多组输入,每组输入格式如下。
第一行包含两个整数nm。(n<=100000,m>0)
第二行包含n个正整数。

输出

输出前m大的数字,若m>n输出ERROR。每组输出占一行。

示例输入

21
43
42
1289898923


示例输出

4
89898923


#include<stdio.h>
intquicksort(inta[],intl,intr)//快排
{
intx=a[l],i=l,j=r;
if(l>=r)return;
while(i<j)
{
while(i<j&&a[j]<=x)j--;
a[i]=a[j];
while(i<j&&a[i]>=x)i++;
a[j]=a[i];

}
a[i]=x;
quicksort(a,l,i-1);
quicksort(a,i+1,r);
}
intb[1000001];
intmain()
{
inti,j,n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);

}
quicksort(b,0,n-1);
if(m>n)
{
printf("ERROR\n");
}
else
{

for(i=0;i<m;i++)
{
if(i==0)
printf("%d",b[i]);
else
printf("%d",b[i]);
}
printf("\n");
}

}
return0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐