论坛首页 综合技术论坛

两个大数据量处理的问题.被鄙视了呜呜

浏览 27945 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-09-19  
lzxz1234 写道
引用

我刚才又想了想..这个真的还是不行..打个比方...我1000万个数字从1到1000万
第一曾是
9个 1-9
第二层就是 没个派生出十个子节点就是 100 个
第三层就是 1000 个
第四层 10000
第五曾100000
....
到了第7层的时候就是1000万了
所以如上你创建了1111111个Node .里面有这么 多个HashMap ...

对内存占用量还是太大太大.....


这仅仅是数字..如果是汉字..在最坏条件下..第一层 65535 ..第二层....65535的平方...最后..就死掉了...

确实有问题,我用大数据量测了下,即使把Map换成数组,然后自己扩容,也不过处理20W个身份证号,所以到底怎么整,还真得继续考虑下

map可以用指针数组来代替,表驱动来处理
0 请登录后投票
   发表时间:2011-09-19  
你的博客权限太高了
“您没有权限执行这项操作,请检查登录的账号是否正确”
0 请登录后投票
   发表时间:2011-09-20  
看看淘宝的收藏案例吧
0 请登录后投票
   发表时间:2011-09-24  
dsjt 写道
你的博客权限太高了
“您没有权限执行这项操作,请检查登录的账号是否正确”

lz贴的是他自己的管理页面,链接里还有个admin。。。。
0 请登录后投票
   发表时间:2011-09-26  
ansjsun 写道
1.场景如下.和某公司哥们聊.
那哥们问了我两个问题.如下

1.1亿个词频率统计..找出top1000
2.判断1亿个整数中是否包含.某个数字

题外话.当时只是被问..连请教的机会都没有..我问那哥们的解决思路.哥们笑而不语..很讨厌这种藏着掖着的.也不是什么内部机密..也不是你自己想的算法..最后还被告知那哥们就做了一年的搜索...哎我也见过不少人..阴沟里翻船了...学无止境啊


第一题切成1000份,
每份取前1000名
合成一个集合

再记个数

不精确但还算可用


第二题我想了半天,
如果不作预处理
只有这个方式才可行

for( integer i : list){
   if(i==key) return true;
}
return false;

如果可以作预处理
只要在无理数中找到一个算法式包含这一亿数字就可以了。理论上1/2的概率
当然这个方式只是理论上可行
0 请登录后投票
   发表时间:2011-10-06  
第一题用堆排序就可以搞定了吧
0 请登录后投票
   发表时间:2011-10-12  
17个大数据量解决方案http://bbs.369in.com/thread-272-1-1.html
0 请登录后投票
   发表时间:2011-11-21  
ansjsun 写道
谢谢楼上的我看了你给我的地址..
他的思想就是根据query映射成hash映射到一个table中..hash算法和table的size取摸...用以统计...有了统计数据..然后取得top1000 soeasy...不知道我理解的是否正确....我还想弄明白..hash是肯定有重复的...对于这个重复是怎么处理的啊???1000万的数据用hash至少得几千重复吧...是不是这个重复可以忽略?


一般这种hash内部都会有解决碰撞的算法,你可查看一下jdk的源码 HashMap,Hashtable的实现,他们都是已经把key值存起来了,所以不用担心碰撞
0 请登录后投票
   发表时间:2011-11-21  
miaofm 写道
ansjsun 写道
谢谢楼上的我看了你给我的地址..
他的思想就是根据query映射成hash映射到一个table中..hash算法和table的size取摸...用以统计...有了统计数据..然后取得top1000 soeasy...不知道我理解的是否正确....我还想弄明白..hash是肯定有重复的...对于这个重复是怎么处理的啊???1000万的数据用hash至少得几千重复吧...是不是这个重复可以忽略?


一般这种hash内部都会有解决碰撞的算法,你可查看一下jdk的源码 HashMap,Hashtable的实现,他们都是已经把key值存起来了,所以不用担心碰撞



HashMap 我晓得..他内部做了一个linkedList 来处理重复...但是这个题..是否能用那个方法来解...表示怀疑...弄1000万大的hash???我觉得解题思路应该从检索上走..
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics