Chinaunix
标题:
求解一道笔试 算法题
[打印本页]
作者:
thehig
时间:
2011-11-08 09:52
标题:
求解一道笔试 算法题
500MHz cpu,1M内存的手机,实现对50万好友的模糊检索
有什么好的思路呢 ?
作者:
x5miao
时间:
2011-11-08 11:36
1M内存?现在有这样的手机吗?
作者:
MMMIX
时间:
2011-11-08 12:22
500MHz cpu,1M内存的手机,实现对50万好友的模糊检索
有什么好的思路呢 ?
thehig 发表于 2011-11-08 09:52
手机?50
万
好友?
作者:
thehig
时间:
2011-11-08 14:33
题目是这样的写的。。。。
那抛开这些硬件条件,有什么比较好的方法或思路来解决这个问题?
作者:
鸡丝拌面
时间:
2011-11-08 16:38
典型的思路如同尿路的鼻屎题。
作者:
l2y3n2
时间:
2011-11-08 16:54
模糊搜索的定义是啥?
作者:
srdgame
时间:
2011-11-08 17:16
难道是为了强调内存很小,要尽量节约内存?
作者:
btdm123
时间:
2011-11-08 17:50
hash
作者:
goldenfort
时间:
2011-11-08 19:19
回复
1#
thehig
这公司没钱,也干不出啥事情来,耍面试的了, 连这都没看出来
作者:
lhy0416
时间:
2011-11-08 19:57
回答:云计算。50万条都在云端,我在手机上发个指令就行了。
作者:
lhy0416
时间:
2011-11-08 20:05
本帖最后由 lhy0416 于 2011-11-08 20:06 编辑
50万小于等于500K
500k条 1M内存 一条2个字节,1M就满了……
2个字节一共16位,就算是二进制存储,也只能存2^16=64K条不同的信息……
这50万信息中平均8个人重名
作者:
keytounix
时间:
2011-11-25 16:21
回复
1#
thehig
50W好友
一个好友 名字占用3个汉字,算2个char,对不?
电话号码占用11个char 考虑首位 1可以忽略对不?
那么一条号码 需要 10+3*2=16个字符
50W条*16=50*16*10K
=8000K
=8M
显然 不能一次占用了
现在我们想一个办法
第一次
我们分20次加载这些数据
然后利用hash()%20函数
对每次加载的数据进行处理
得到结果相同的
存放在 同一个文件中
20次后
得到了0-19这20个文件
然后对 搜索的关键词进行 hash()%20操作
得到 的值 假设为 9
最后 到 文件名称为 9的文件中进行搜索操作就可以了
每一次 加载的文件大概为4KB左右
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2