- 博客(6)
- 资源 (7)
- 收藏
- 关注
原创 百度面试题query的分类排序
5、有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。如何按照query的频度排序? 回答: 1)读取10个文件,按照hash(query)%10的结果将query写到对应的文件中。这样我们就有了10个大小约为1G的文件。任意一个query只会出现在某个文件中。 2)对于1)中获得的10个文件,分别进行如下操作 -利用hash_
2014-04-15 20:07:33 2631
原创 百度面试题-海量日志,读取IP
4、海量日志数据,提取出某日访问百度次数最多的那个IP。 回答: 如果日志文件足够的大,大到不能完全加载到内存中的话。 那么可以考虑分而治之的策略,按照IP地址的hash(IP)%1024值,将海量日志存储到1024个小文件中。每个小文件最多包含4M个IP地址。 对于每个小文件,可以构建一个IP作为key,出现次数作为value的hash_map,并记录当前出现次数最多的1个IP地址。
2014-04-13 22:56:06 1271
原创 百度面试题d(n)
2、找到满足条件的数组 给定函数d(n)=n+n的各位之和,n为正整数,如d(78)=78+7+8=93。这样这个函数可以看成一个生成器,如93可以看成由78生成。 定义数A:数A找不到一个数B可以由d(B)=A,即A不能由其他数生成。现在要写程序,找出1至10000里的所有符合数A定义的数。
2014-04-10 10:01:24 1010
原创 快速排序和插入排序的C++实现
本来这是一个很常见的算法,可是接触IT这么长时间了,竟然还不知道这种算法的核心,是在惭愧,最近一直想补习这方面的内容于是也就,开始了我的算法里程,现在就说说快速排序吧,本来我一直是在用冒泡排序的,可是总是被人耻笑,所以呢,现在想想,开始学习吧 快速排序吧,总体流程是这样的,首先将获取最后一个元素,然后呢根据这最后一个元素将数组分开两部分,一部分比该元素小,另一部分比该元素大,这样就
2014-04-04 10:36:52 1009
原创 编程珠玑的二分法
二分法,究其根本就是在已经排好序的基础上进行的数据查找,该方法具有较高的效率,特别好用 // 进化的二分法.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; template int Find_By_Binary(Any* ptr ,int nLength,Any value) { int
2014-04-03 09:38:36 871
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人