海量数据问题
文章平均质量分 57
爱橙子的OK绷
时刻准备着。。。
展开
-
10亿个数中找出最大的10000个数(top K问题)
前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个。建堆时间复杂度是O(mlo转载 2015-11-04 11:39:42 · 6713 阅读 · 1 评论 -
STL---hash_map介绍与海量数据处理
一、hash_map简介hash_map的用法和map是一样的,提供了 insert,size,count等操作,并且里面的元素也是以pair类型来存贮的。虽然对外部提供的函数和数据类型是一致的,但是其底层实现是完全不同的,map底层的数据结构是rb_tree,红黑树有序,每次操作的复杂度稳定在logN。而hansh_map却是哈希表(hashtable)来实现的,在hash函数恰当的情况下,可以提转载 2015-11-03 16:15:33 · 1401 阅读 · 0 评论 -
寻找热门查询
一、问题描述:寻找热门查询: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串 的长度为1-255字节。假设目前有一千万个记录, 这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个 。一个查询串的重复度越高,说明查询它的用户越多, 也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。 (1)请描述你解决这个问题的思路; (转载 2015-11-04 16:38:05 · 684 阅读 · 0 评论 -
海量数据中找出出现次数最多的前10个URL
#include<iostream> #include<string> #include<map> #include<vector> using namespace std;int main(void) { //海量数据 string a[5]={"ab","b","ccc","ab","ccc"}; int n=sizeof(a)/sizeof(a[0]); cou原创 2016-09-19 22:34:20 · 7616 阅读 · 0 评论