第六题 Sort对于超大量的数据输出前n个最大的数据(思想还是hash)
2017-11-22 21:12
225 查看
//这一次居然是因为这里的j++写成了j--我也是醉了。。
//不要挤着眼敲代码,你还没到那个时候!!!!!
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <string.h>
using namespace std;
int buf[1000001];
int main()
{
int n;
int m;
int tmp;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(buf,0,sizeof(int));
for(int i=0;i<n;i++)
{
scanf("%d",&tmp);
buf[tmp+500000]++;
}
int cnt=0;
for(int j=1000000;j>=0;j--)//这一次居然是因为这里的j++写成了j--我也是醉了。。
{
if(cnt==m)break;
if(buf[j])
{
cnt++;
printf("%d ",j-500000);
}
}
printf("\n");
}
return 0;
}
//不要挤着眼敲代码,你还没到那个时候!!!!!
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <string.h>
using namespace std;
int buf[1000001];
int main()
{
int n;
int m;
int tmp;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(buf,0,sizeof(int));
for(int i=0;i<n;i++)
{
scanf("%d",&tmp);
buf[tmp+500000]++;
}
int cnt=0;
for(int j=1000000;j>=0;j--)//这一次居然是因为这里的j++写成了j--我也是醉了。。
{
if(cnt==m)break;
if(buf[j])
{
cnt++;
printf("%d ",j-500000);
}
}
printf("\n");
}
return 0;
}
相关文章推荐
- 利用perl从大量数据中筛选我们我们需要的数据,核心思想就是根据格式的一致性,将每一行利用split转换成数组,然后输出对应的数组
- freemark标签从后台接过来数据Boolean在前台还是Boolean输出(四)
- C#处理大量数据应该用hashtable还是datatable
- 【数据结构】大量数据(20万)的快速排序的递归与非递归算法、三数取中思想
- java ------------用Array.sort()输出数组元素的最大值,最小值,平均值~~~~
- 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值
- 编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件
- 对于Mysql大量数据查询速度慢的问题
- 使用Hash思想,实现输出n个整数的前m大的所有数
- mysql对于有大量重复数据的表添加唯一索引
- 当对输入的数据进行大小排序有浮点数和整数,判断是浮点数还是整型数,按原型输出
- MySQL对于有大量重复数据表的处理方法
- Problem Description 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。 Input 输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。 Output 对于每组
- 利用类的数据成员和成员函数:输入三个整数,输出它们的最大值 .
- 试想32位整型数据所能表示的最大数阶乘。假设y=x!,在32位整型内,x最大为多少y不溢出,输出x和y的值。
- 有一个很帅的方法,可惜我对于string的原理还是不太懂 另外unique 和sort 可以处理string呢 嗯,解决了,但还可以优化哦
- 华为机试题_输出一列数据的最大/最小值之和(重点在输入输出)
- 对于一个管理性的软件来讲,数据主键的产生策略是很关键的一点,这个关系到整个系统的基础架构思想。
- R语言如何一次输出一组数据的最大值,最小值,平均值(如何一次完成多个函数)
- 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和,对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数