![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典算法系列
五癫
武汉理工大学软件工程
展开
-
算法系列-大数据面试题-在超大文件中找出访问百度次数最多的IP
1.题目描述现有海量日志数据保存在一个超级大的文件中,该文件无法直接读入内存,要求从中提取某天出访问百度次数最多的那个IP2.思考过程(1)面试中若题目提到大文件等,其实就是告诉你数据量大,不能一次性加载到内存中,而实际中我们就需要估算。既然是要对访问百度次数的ip做统计,我们最好先预处理一下,遍历把访问百度的所有ip写到另一个文件a中(2)ip用32位表示,所以最多有2^原创 2017-08-16 12:26:45 · 8145 阅读 · 4 评论 -
算法系列-大数据面试题-两个大文件中找出共同记录
1.题目描述给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?(假如每个url大小为10bytes)2.思考过程(1)首先我们最常想到的方法是读取文件a整体加载到内存中,建立哈希表(为什么要建立hash表?因为方便后面的查找),然后再读取文件b,整体加载到内存中,遍历文件b中每个url,对于每个遍历,我们都执行原创 2017-08-16 12:00:47 · 18644 阅读 · 15 评论 -
算法系列-大数据面试题-大文件中返回频数最高的100个词
1.题目描述有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词2.思考过程(1)参见我的其他大数据面试题博文。此处1G文件远远大于1M内存,分治法,先hash映射把大文件分成很多个小文件,具体操作如下:读文件中,对于每个词x,取hash(x)%5000,然后按照该值存到5000个小文件(记为f0,f1,...,原创 2017-08-16 13:24:42 · 7552 阅读 · 4 评论 -
算法系列-一致性哈希算法consistent hash
http://www.zsythink.net/archives/1182 ,这篇博文写得通熟易懂,强烈推荐~!转载 2017-08-12 18:52:37 · 314 阅读 · 0 评论 -
算法系列-bitmap算法详解和实现
1.什么是bitmap?我们可以将bitmap看成是一种数据结构,所谓的Bit-map就是用一个(或几个)bit位来标记某个元素对应的state(value)。最基本的情况,使用1bit标示一个关键字的状态(可标示两种状态),但根据需要也可以使用2bit(标示4种状态),3bit(标示8种状态),当一个状态标示需要的位数达到32bit时,就演变成来一个整型数组了。2.优点和缺点原创 2017-08-29 14:40:19 · 3889 阅读 · 0 评论 -
字符串匹配问题解决方案之一KMP算法
阅读目录1 字符串匹配2 KMP算法3 算法实现回到顶部1 字符串匹配 字符串匹配是计算机的基本任务之一。 字符串匹配是什么?举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三转载 2017-09-18 10:33:33 · 466 阅读 · 0 评论 -
字符串匹配问题解决方案之二-BM算法
Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。下面,我根据Moore教授自己的例子来解释这种算法。1.假定字符串为"HERE IS A SIMPLE EXAMPLE",搜索词为"EXAMPLE"。2.首先,"字符串"与"搜索词"头部对齐,从尾转载 2017-09-18 11:20:16 · 716 阅读 · 0 评论