以后的部分题目来源将取自下文-introduction to 3d game programming with directx12 (龙书dx12版) pdf

上传者: 26712065 | 上传时间: 2021-08-14 02:57:53 | 文件大小: 4.43MB | 文件类型: PDF
同时,程序员编程艺术系列将重新开始创作,第十一章以后的部分题目来源将取自下文 中的 17 道海量数据处理的面试题。因为,我们觉得,下文的每一道面试题都值得重新思考, 重新深究与学习。再者,编程艺术系列的前十章也是这么来的。若您有任何问题或建议,欢 迎不吝指正。谢谢。 第一部分、十五道海量数据处理面试题 1. 给定 a、b 两个文件,各存放 50 亿个 url,每个 url 各占 64 字节,内存限制是 4G,让 你找出 a、b 文件共同的 url? 方案 1:可以估计每个文件安的大小为 50G×64=320G,远远大于内存限制的 4G。所 以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。 1. 遍历文件 a,对每个 url 求取 1000)%(urlhash ,然后根据所取得的值将 url 分别存 储到 1000 个小文件(记为 99910 ,,, aaa  )中。这样每个小文件的大约为 300M。 2. 遍历文件 b,采取和 a 相同的方式将 url 分别存储到 1000 小文件中(记为 99910 ,,, bbb  )。这样 处理 后,所 有可能 相同的 url 都在 对应的 小文件 ( 9999991100 ,,, bvsabvsabvsa  )中,不对应的小文件不可能有相同的 url。然后 我们只要求出 1000 对小文件中相同的 url 即可。 3. 求每对小文件中相同的 url 时,可以把其中一个小文件的 url 存储到 hash_set 中。 然后遍历另一个小文件的每个 url,看其是否在刚才构建的 hash_set 中,如果是, 那么就是共同的 url,存到文件里面就可以了。 方案 2:如果允许有一定的错误率,可以使用 Bloom filter,4G 内存大概可以表示 340 亿 bit。将其中一个文件中的 url 使用 Bloom filter 映射为这 340 亿 bit,然后挨个读取另外一 个文件的 url,检查是否与 Bloom filter,如果是,那么该 url 应该是共同的 url(注意会有一 定的错误率)。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明