首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
在10亿个unsigned int数中,如何判断一个给定的数
[问答题]
在10亿个unsigned int数中,如何判断一个给定的数是不是在其中?
添加笔记
求解答(6)
邀请回答
收藏(60)
分享
纠错
7个回答
添加回答
6
lixxxxxx
把10亿个数中的每一个用32位的二进制来表示。假设这10亿个数开始放在一个文件中。
然后将这10亿个数分成两类:
1.最高位为0
2.最高位为1
并将这两类分别写入到两个文件中,其中一个文件中数的个数<=5亿,而另一个>=5亿(这相当于折半了);
与要查找的数的最高位比较并接着进入相应的文件再查找
再然后把这个文件为又分成两类:
1.次最高位为0
2.次最高位为1
并将这两类分别写入到两个文件中,其中一个文件中数的个数<=2.5亿,而另一个>=2.5亿(这相当于折半了);
与要查找的数的次最高位比较并接着进入相应的文件再查找。
.......
以此类推,就可以找到了,而且时间复杂度为O(logn)。
发表于 2019-07-01 10:22:26
回复(0)
0
uiop112233
编辑于 2023-12-23 16:28:22
回复(0)
0
我是好人x
bitmap
发表于 2020-03-21 18:06:20
回复(0)
0
游戏锦鲤-桃
十亿个数,2的31次方大概是21亿,可以装下所有的数。所以申请2的31次方个位覆盖这十亿个数,然后存在的数上的位为1,不存在为0,然后依次进行比较。所以大概内存占用2的28次方个字节=256MB。
发表于 2019-11-27 09:24:34
回复(0)
0
OnePiece201909200842439
可以将1千个数为一行整成一个文本文件,将数据用spark读取,根据给定的数过滤判断该数是否在该行中,最后根据是否留有数据来判断,该数是否在其中。
发表于 2019-09-20 09:57:39
回复(0)
0
小余1
二分查找法
发表于 2019-08-16 15:44:24
回复(0)
0
清清兀商
int i;
List unsigned = new ArrayList();
for( i:unsigned){
}
发表于 2019-07-15 10:38:02
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
iHandy
算法工程师
2019
大数据开发工程师
上传者:
小小
难度:
7条回答
60收藏
1588浏览
热门推荐
相关试题
下面描述中,符合结构化程序设计风格...
北京搜狐互联网信息服务有限公司
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
计算斐波那契数列第n项的函数定义如...
算法工程师
大数据开发工程师
iHandy
2019
评论
(6)
合并二叉树
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
测试工程师
安全工程师
c#工程师
数据库工程师
大数据开发工程师
瓜子二手车
2019
评论
(7)
《绝地求生》中,每局游戏最多有多少...
游戏常识
评论
(1)
动态餐厅定价需要实时显示,延迟较低...
大模型开发
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题