社区
C语言
帖子详情
文件中有10亿记录,怎样从中查找出现次数最多的10条
mikemeego001
2011-06-02 08:24:51
rtt
...全文
1062
10
打赏
收藏
文件中有10亿记录,怎样从中查找出现次数最多的10条
rtt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suisui008
2011-06-02
打赏
举报
回复
冒泡怎么样
只需要 10*10亿次
时间效率是O(10n)
maoxing63570
2011-06-02
打赏
举报
回复
[Quote=引用 8 楼 supermegaboy 的回复:]
引用 6 楼 maoxing63570 的回复:
引用 4 楼 demon__hunter 的回复:
我一个算法比较牛x同学告诉我,去面试时,凡是牵扯到数据量相当大的问题,都可以向hash靠拢~~~~
问题是如果散列函数要自己设计不就有点嘈耐了,这么大的数据量,冲突怎么解决?
实际上就是要计数冲突的次数。
[/Quote]
但是冲突也不一定就是相同的吧,还要取决于你的散列函数啊
飞天御剑流
2011-06-02
打赏
举报
回复
[Quote=引用 6 楼 maoxing63570 的回复:]
引用 4 楼 demon__hunter 的回复:
我一个算法比较牛x同学告诉我,去面试时,凡是牵扯到数据量相当大的问题,都可以向hash靠拢~~~~
问题是如果散列函数要自己设计不就有点嘈耐了,这么大的数据量,冲突怎么解决?
[/Quote]
实际上就是要计数冲突的次数。
nand库路泽
2011-06-02
打赏
举报
回复
记得好像归并排序算法,非常适用于海量数据,同样可以参照一下归并算法试一下!!
maoxing63570
2011-06-02
打赏
举报
回复
[Quote=引用 4 楼 demon__hunter 的回复:]
我一个算法比较牛x同学告诉我,去面试时,凡是牵扯到数据量相当大的问题,都可以向hash靠拢~~~~
[/Quote]
问题是如果散列函数要自己设计不就有点嘈耐了,这么大的数据量,冲突怎么解决?
飞天御剑流
2011-06-02
打赏
举报
回复
把记录当字符,到达相同末端就计数一次,保存十条最多的。
机智的呆呆
2011-06-02
打赏
举报
回复
我一个算法比较牛x同学告诉我,去面试时,凡是牵扯到数据量相当大的问题,都可以向hash靠拢~~~~
ryfdizuo
2011-06-02
打赏
举报
回复
[Quote=引用 1 楼 supermegaboy 的回复:]
散列算法,这样遍历文件一次就OK了。
[/Quote]
不知这个散列算法如何确定呢?
ischarles
2011-06-02
打赏
举报
回复
对10亿条记录进行排序,如果用快排,复杂度是O(N*logN),然后再遍历一遍进行计数,输出前10个,复杂度是O(N)。总的复杂度是O(N+N*logN) = O(N*logN)
或者也可以对每条记录进行hash运算,映射为一个整数,同时,可以用一个变量进行计数,这让你可以遍历一遍就找出前10个记录,但是复杂度取决于你用的hash函数的好坏,也就是要看你文件中的10亿条记录的具体特征了。
飞天御剑流
2011-06-02
打赏
举报
回复
散列算法,这样遍历文件一次就OK了。
从一千万
条
短信中找出重复
次数
最多
的前
10
条
题目: 有1千万
条
短信,有重复,以文本
文件
的形式保存,一行一
条
。请用5分钟时间,找出重复
出现
最多
的前
10
条
。 struct TNode { BYTE* pText; //直接指向
文件
映射的内存地址 DWORD dwCount; //计算器,
记录
此节点的相同短信数 TNode* ChildNodes[256]; //子节点数据,由于一个字母的ASCII值不可能超过
Linux awk统计日志中
出现
过的IP(或
出现
次数
最多
的N个IP)
awk是一个强大的文本分析工具,相对于grep的
查找
,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把
文件
逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk的用法 awk 'BEGIN{ commands } pattern{ commands } END{ commands }' 第一步:运行BEGIN{ commands ...
在一个很大的日志
文件
中
查找
到
出现
最多
的ip并且
记录
次数
在一个
10
0G的日志
文件
中,
查找
到访问
最多
的IP, 获得前3个IP, 限制内存只有 1G, 不能使用MapReduce, 请使用Java实现 问题解析 既然内存只有1G那么就不能直接使用HashMap进行统计, 可以使用MapReduce原理, 先切片, 通过Hash码进行分片, IP 相同的肯定在一个
文件
中, 分片不宜太大,也不宜太小, 就用
10
00片吧,之后统计每个...
查询一个日志
文件
中访问
次数
最多
前
10
个IP?
题目:查询一个日志
文件
中访问
次数
最多
前
10
个IP? 第一步:按照IP进行将
记录
排序。 第二步:按照IP去重,并且显示重复
次数
第三步:按照
次数
升序排列 第四步:显示前
10
行 cat log.txt|awk -F" " '{print &1}' |sort|uniq -c|sort -nrt " "|awk -F" " 'print &2' |head -
10
...
在
10
0G
文件
中找出
出现
次数
最多
的
10
0个IP
昨天面阿里最后栽在一道很常见的海量数据处理上了,也怪之前没专门花时间准备这个问题。今天参考了July的博客,又反思了下自己面试时错误的思路,重新整理为下面的解答过程。 先上July的博客对类似问题的解答思路: 搜索引擎会通过日志
文件
把用户每次检索使用的所有检索串都
记录
下来,每个查询串的长度为1-255字节。假设目前有一千万个
记录
(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章