腾讯算法题,麻烦大家看看

天南海北 发布于 2011/09/26 15:39
阅读 4K+
收藏 10
PHP
腾讯算法 题:服务器内存1G,有一个2G的文件,里面每行存着一个QQ号(5-10位数),怎么最快找出出现过最多次的QQ号。
加载中
0
开心303
开心303
明显内存不够,分而治之。
0
天南海北
天南海北
是的,想用 file_get_contents()这个方法分而治之,但不知道下一步如何弄。
0
开心303
开心303

方案一:bitmap(这个去网上查)

方案二:导入数据库,然后select qq, count(*) group by qq;

0
天南海北
天南海北

引用来自“开心303”的答案

方案一:bitmap(这个去网上查)

方案二:导入数据库,然后select qq, count(*) group by qq;

方案一,不是位图么?不懂。

方案二:需要直接在文本里操作。

0
ClownFish
ClownFish
想不出来,坐等高手解决。
0
ruislan
ruislan
我的SA说:cut -d " " -f1 | sort | uniq -c | sort -n | tail -1
0
开心303
开心303

原始内容:
a
b
c
b
c
c
对文件外部排序:
a
b
b
c
c
c
对文件进行整理:
a
b 2
c 3
对文件外部排序:
c 3
b 2
a

HoDull
HoDull
按这个思路,排序工作只需进行一遍(主要的工作量就在这里),后面的文件整理和排序可用一个计数器来完成。
张亦俊
张亦俊
这个能快么?
0
方旭
方旭

思想:

一、文件分段读取,控制内存。

二、算法实现为一维数组。

提示:以qq号码为 一维数组下标。

这个是一个经典的算法问题。

王海峰
王海峰
你得要多大的数组啊。。。
0
了墨
了墨
外排~~~不会
返回顶部
顶部