逛奔的蜗牛

我不聪明,但我会很努力

   ::  :: 新随笔 ::  ::  :: 管理 ::

现在有1千万个随机数,随机数的范围在11亿之间。现在要求写出一种算法,将11亿之间没有在随机数中的数求出来。


一个32位的整数32位表示32个数,1亿/32 = 3125000,使用3.125 * 4m即可保存1亿个数. 对于数n(n-1) / 32 为其在数组中的下标,table[(n - 1) % 32]与数组中此下标的值使用或操作。


表中值为0000001, 0000010, 0000100这样的表示方式,具体的数值使用查表法加快速度


最后算某值是否存在,使用与操作即可计算出

posted on 2011-10-02 23:38 逛奔的蜗牛 阅读(620) 评论(0)  编辑 收藏 引用 所属分类: Java其他编程

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理