大众点评网试题及海量数据扩展知识积累

上传人:wt****50 文档编号:45923311 上传时间:2018-06-20 格式:PDF 页数:13 大小:1.45MB
返回 下载 相关 举报
大众点评网试题及海量数据扩展知识积累_第1页
第1页 / 共13页
大众点评网试题及海量数据扩展知识积累_第2页
第2页 / 共13页
大众点评网试题及海量数据扩展知识积累_第3页
第3页 / 共13页
大众点评网试题及海量数据扩展知识积累_第4页
第4页 / 共13页
大众点评网试题及海量数据扩展知识积累_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《大众点评网试题及海量数据扩展知识积累》由会员分享,可在线阅读,更多相关《大众点评网试题及海量数据扩展知识积累(13页珍藏版)》请在金锄头文库上搜索。

1、 肖龙肖龙答案整理如下:答案整理如下: /* 思路:创建两组桶,用于存放52个字母(假设字符串全部由字母组成),每个桶代表一个 字母,其中有一个值,出现一个字母则对应的值加一。最后两组桶比较每个桶的值便能得 知字符串是否相等。 */ #include #include /* 给代表对应字母的桶赋值 */ void loadStr(int bucket52, char str32) int tempStr = 0; for(int i = 0; i = x) j-; r*i = rj; while(*i =t.len) v=i-t.len; /*返回匹配模式串的首字符下标*/ else v=-1

2、; /*返回丌匹配标志*/ return v; 操作:操作:代码来自严蔚敏书本代码来自严蔚敏书本 【1】快速排序代码 【2】KMP模式匹配代码 问题2:综合搜索了一些面试题目,觉得用堆算法比较好。我记得高分笔记堆排序那张介绍了下,比较适合这种场景。 答案整理如下:答案整理如下: 根据特定的场景,采用巧妙的算法搭配合适的数据结构,才能达到最佳的效果。基于这条 设计原则,为了寻求最高的效率,我们综合考虑影响查询的若干前置因素。比如海量数据是否 建立了索引,海量数据分布在 N 台电脑中,查询记录的重复性,IO 的开销等。 对于题设已知条件,可以认为隐含了该系统使用了缓存或负载均衡机制,那么查询出来的

3、 数据如果是重复的,就会使用缓存中的记录,于是分 2 种情况讨论 : (1)重复的数据比较多,可能对于所有的 query,一次性就可以加入到内存了。比如虽然有 一千万个 Query, 但是由于重复度比较高, 因此事实上只有 100 万的 Query, 每个 Query 10Byte。 可以采用 hashMap 建立数据字典,统计每个 query 出现的次数,然后用最小堆排序取出前 10 个 最大的积分可以了。 (2)重复的数据比较少, 可以考虑将数据字典放在硬盘上面或者分布式计算, 采用 map-reduce 过程, 首先将数据按照范围划分到不同机器, 让数据划分后可以一次性读进内存, 实际就

4、是 map。 这样得出结果之后,各个机器拿出最大的前 10 个积分汇总。然后,选出汇总的数据中最大的前 10 个积分,实际就是 reduce 过程。当然,外排序也会消耗大量的 IO。当然,分布式计算也是 一个外排序的归并过程,将不同的子文件逐渐处理,然后进行一个合并。 参考资料 http:/ 面试题目-大数据量海量数据处理 (重要重要文字截图说明文字截图说明) http:/ ORACLE SQL性能优化(全) http:/ 原创 mysql数据库千万级别数据的查询优化和分页测试 http:/ 1-十道海量数据处理面试题 (重要文字截图说明)(重要文字截图说明) http:/ 教你如何迅速秒杀99%的海量数据处理面试题 http:/ 微软面试100题系列by_July (这些资源你可以好好看下,100个微软算法) (还有好多相关算法文档可以看看) http:/ 当今世界最受人们重视的十大经典算法 其它丌重要的文章参考: http:/ 如何构建千万用户级别如何构建千万用户级别 后台数据库架构设计的思路后台数据库架构设计的思路 http:/ 数据库太大有什么优化技术数据库太大有什么优化技术 http:/ 主题:主题:oracle大数据量(千万界别)怎么优化查询,分区。大数据量(千万界别)怎么优化查询,分区。 http:/ 海量数据库的查询优化和分页算法

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号