锁定老帖子 主题:两个大数据量处理的问题.被鄙视了呜呜
精华帖 (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可以用指针数组来代替,表驱动来处理 |
|
返回顶楼 | |
发表时间:2011-09-19
你的博客权限太高了
“您没有权限执行这项操作,请检查登录的账号是否正确” |
|
返回顶楼 | |
发表时间:2011-09-20
看看淘宝的收藏案例吧
|
|
返回顶楼 | |
发表时间:2011-09-24
dsjt 写道 你的博客权限太高了
“您没有权限执行这项操作,请检查登录的账号是否正确” lz贴的是他自己的管理页面,链接里还有个admin。。。。 |
|
返回顶楼 | |
发表时间: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的概率 当然这个方式只是理论上可行 |
|
返回顶楼 | |
发表时间:2011-10-06
第一题用堆排序就可以搞定了吧
|
|
返回顶楼 | |
发表时间:2011-10-12
17个大数据量解决方案http://bbs.369in.com/thread-272-1-1.html
|
|
返回顶楼 | |
发表时间:2011-11-21
ansjsun 写道 谢谢楼上的我看了你给我的地址..
他的思想就是根据query映射成hash映射到一个table中..hash算法和table的size取摸...用以统计...有了统计数据..然后取得top1000 soeasy...不知道我理解的是否正确....我还想弄明白..hash是肯定有重复的...对于这个重复是怎么处理的啊???1000万的数据用hash至少得几千重复吧...是不是这个重复可以忽略? 一般这种hash内部都会有解决碰撞的算法,你可查看一下jdk的源码 HashMap,Hashtable的实现,他们都是已经把key值存起来了,所以不用担心碰撞 |
|
返回顶楼 | |
发表时间: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???我觉得解题思路应该从检索上走.. |
|
返回顶楼 | |