2009年9月21日星期一

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

2009/9/22 msmouse <msmouse@gmail.com>
没有15!那么大的量级吧 应该是4的15次幂,也就是2的30次幂,大约1G种组合 ,用一个int32数组计数即可,散列的话考虑到很多种组合是不存在的 有2G内存也是可能一次跑成的


嗯嗯嗯,忘了是有重复元素的列表了。。。哈哈,多谢指正。总排列数确实是 4^15 :) 每一个位子都只有 4 种可能性,便是 4*4*4*...*4 这 15 个 4 相乘。为避免存储各个 key,将 key 作 hash 到一个 int32 整数,便只有 4 个字节。如果不保存计数值,用位数组来代替哈希表的话,应该更省空间,1 GB RAM 作数据本身的存储,再留个几 MB RAM 作其他计算用 :) 保存次数并用数组的话,用 int32 作为数组元素则需要 4 GB 了吧?不知道这一次我有没有算错,呵呵 :P

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: