社区
C++ 语言
帖子详情
1亿个数可重无序排列,找出其中没出现的最小的数
mammonyy
2015-11-29 05:24:07
1亿个数可重无序排列,找出其中没出现的最小的数
虽然没要求时间没要求内存,但是我觉得要尽量小
我想的是用布隆过滤 把这1亿个数哈希到1GB的位上面,然后再从1开始从小到大去哈希到位上 判断是否是1……
但是依旧感觉费时很长。。 求大神贴下想法,有C/C++代码更好
...全文
138
2
打赏
收藏
1亿个数可重无序排列,找出其中没出现的最小的数
1亿个数可重无序排列,找出其中没出现的最小的数 虽然没要求时间没要求内存,但是我觉得要尽量小 我想的是用布隆过滤 把这1亿个数哈希到1GB的位上面,然后再从1开始从小到大去哈希到位上 判断是否是1…… 但是依旧感觉费时很长。。 求大神贴下想法,有C/C++代码更好
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lm_whales
2015-11-29
打赏
举报
回复
1亿个数哈希到125MBytes的位上面找到最大值最小值 你可以一次判断32Bits,或者64Bits 4或者8 Byte 如此只需要 32M 或者16M左右次搜索 也就是只要1000万次左右的比较这个还算比较快了 如果开四个或者8个线程,那就是几百万级的,已经很快了 我记intelX86 有cmps 串比较指令,也就是一个线程 几百万条指令而已。 换页,高级缓存造成的效率损失,比比较操作严重多了。
chehw_1
2015-11-29
打赏
举报
回复
假设最小值的重复次数不超过64K(64 * 1024)个 (0)先取前64K个数,用数组的方式建一个最大堆H; (1) 依次读取后续的数字,若1亿个数读取完毕,则跳转至(5); (2)将读取的数字与堆顶元素进行比较,如果大于堆顶元素,则返回(1); (3)如果小于等于堆顶元素,则用该数字替换堆顶元素,重建最大堆H; (4)返回(1) (5)用任意方法对H进行排序,找出其中的最小值(允许有重复,最多不超过64K个)
Java集合
Java的集合类是一种特别有用的工具类,它可以用于存储
数
量不等的多个对象,并可以实现常用
数
据结构,如栈,队列等,除此之外,Java集合还可用于保存具有映射关系的关联
数
组。 Java的集合大致上可分为:Set,List和Map三种体系,其中Set代表
无序
,不
可重
复的集合;List代表有序,重复的集合,而Map则代表具有映射关系的集合。Queue体系集合,代表一种队列集合实现。 Java集合就像是一个容器,我们可以把多个对象(实际上是对象的引用,习惯上叫对象,)保存到集合容器中。在JDK1.5以前Java集合会丢失容器中所有对象的
数
据类型,把所有对象都当初object对象来处理,JDK1.5以后增加了泛型,Java集合可以记住容器中对象的
数
据类型。从而可以编写出更简洁,健壮的代码。
有一
亿
个随机
数
,不排序如何
找出
其中位
数
【转】
有一
亿
个随机
数
,不排序如何
找出
其中位
数
题目:在一个文件中有 10G 个整
数
,乱序
排列
,要求
找出
中位
数
。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。 关于中位
数
:
数
据排序后,位置在最中间的
数
值。即将
数
据分成两部分,一部分大于该
数
值,一部分小于该
数
值。中位
数
的位置:当样本
数
为奇
数
时,中位
数
=(N...
有一
亿
个随机
数
,不排序如何
找出
其中位
数
题目:在一个文件中有 10G 个整
数
,乱序
排列
,要求
找出
中位
数
。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。 关于中位
数
:
数
据排序后,位置在最中间的
数
值。即将
数
据分成两部分,一部分大于该
数
值,一部分小于该
数
值。中位
数
的位置:当样本
数
为奇
数
时,中位
数
=(N+1)/2 ; 当样本
数
为偶
数
时,中位
数
从1
亿
个整
数
中
找出
最大的1万个
这是比较常见的一个面试题了. 看到一篇比较好的文章,留下网址和阅读笔记. 地址:http://blog.csdn.net/shadowkiss/archive/2008/12/19/3557873.aspx 其中针对问题,算法上进行不断地优化,是一大亮点,其优化过程包括: 不假思索 stupid,[选择排序]每次
找出
余下
数
组中最大的,重复1万次. ...
怎么在海量
数
据中
找出
重复次
数
最多的一个
1、海量日志
数
据,提取出某日访问百度次
数
最多的那个IP。 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的
数
目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。 再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个 IP。同样可以采用映射的方法
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章