我不聪明,但我会很努力
现在有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来。
一个32位的整数32位表示32个数,1亿/32 = 3125000,使用3.125 * 4m即可保存1亿个数. 对于数n,(n-1) / 32 为其在数组中的下标,table[(n - 1) % 32]与数组中此下标的值使用或操作。
表中值为0000001, 0000010, 0000100等这样的表示方式,具体的数值使用查表法加快速度
最后算某值是否存在,使用与操作即可计算出
Powered by: C++博客 Copyright © 逛奔的蜗牛