海量数据面试题

本文介绍在有限内存下处理大规模数据集的有效算法,包括通过文件切割和哈希表找到唯一整数,利用位图存储技术寻找出现频率不超过两次的整数,以及通过文件切割和散列函数找出两个大型文件的交集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、给定100亿个整数,设计算法找到只出现一次的整数;

先将100亿个整数切割到100个文件中,每个文件利用哈希表存储,找出每个文件中只出现一次的整数,再合并最后找出只出现一次的整数。

2、给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集;

和上题一样,先将两个文件都利用相同的散列函数各切割为100份,并且将两个文件的切割文件按一样的规律编号,再将相同编号的文件进行合并找出交集,最后将找出的交集进行合并就找到所有的交集。

3、1个文件有100亿个int,1G内存,设计算法找到出现次数不超过2次的所有整数;

用俩个bit表示状态,00,表示未出现过,01表示出现过一次,11表示出现多次,利用位图进行存储。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值