排序练习——找出前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;
}
相关文章推荐
- 排序练习——找出前m大的数字
- 排序练习——找出前m大的数字 分类: 排序 2015-06-08 09:33 21人阅读 评论(0) 收藏
- 排序练习——找出前m大的数字
- c++之数组篇1:对排序数组找出指定数字出现的次数
- 华为练习3 在字符串中找出连续最长的数字串
- 前端笔试题练习笔记:函数参数按照从小到大的顺序排序、数字格式化
- 消除原理____假设数组中有一个数字出现的次数超过了数组长度的一半,试编程找出这个数字(qosrt 快速排序 哈希)
- 【算法练习】找出数组中仅出现一次的数字
- 数据结构练习(09)排序数组中和为给定值的两个数字
- 在排序数组中,找出给定数字的出现次数,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
- 蓝桥杯基础练习(数列排序+特殊回文数+回文数+特殊的数字)
- 【练习】写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,
- 在排序数组中,找出给定数字的出现次数
- 假设数组中有一个数字出现的次数超过了数组长度的一半,试编程找出这个数字(消除 qosrt 快速排序 哈希)
- 【js实现】在排序数组中,找出给定数字的出现次数,比如 [1, 2, 2, 2, 3] 中2的出现次数是3次
- 剑指offer-算法题练习:part13 数字字母重排序-笔试题
- 编译器练习:找出C程序中除注释外的数字并将其值翻倍
- 微软面试题:在排序数组中,找出给定数字的出现次数
- 在排序数组中,找出给定数字的出现次数
- 10、在排序数组中,找出给定数字出现的次数