`
lg_asus
  • 浏览: 193980 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

40亿不重复的正整数,如何判断一个数是否在其中

 
阅读更多
int型的表示范围为 -2^32~2^32-1 ,也就是40亿多点。
如果只是找一个数在不在其中,则可以直接遍历一次,这是最快速的方法。

如果要是判断多个数是否在其中,则遍历多次效率就很低了,首先4*10^9 bit 约等于512M字节,因此首先可以在内存中开512M的空间,创建一个数组a,遍历一次40亿个数,将数组下标为这个数的位置1,如遍历到2000000111这个数,则直接将a[2000000111]置1。 在查询某个数在不在其中,直接取数组的那个位置数据判断如果是1则表示在,0表示不在。

这个方法叫做位图法 bitmap, 在判断多个数在不在其中的时候效率很高。

参考:csdn
分享到:
评论
1 楼 lg_asus 2012-02-08  
文章中说错了:
如果只是找一个数在不在其中,则可以直接遍历一次,这是最快速的方法。

40亿数据太大,是不能放在内存中的,还是采用bitmap方法。

相关推荐

    世界500强面试题.pdf

    1.6.3. 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数 位于数组的后半部分 ...........................................................130 1.6.4. 给定链表的头指针和一个...

    大厂面试系列二.pdf

    40亿个不重复的unsigned int整数中,可以使用位图或Bloom Filter来快速判断某些数是否存在于集合中。 在内存限制为2G的情况下找出10G个整数中的中位数问题,可以使用外部排序算法将数据分块,然后使用最小堆或最大...

    人教小学数学总复习小升初PPT学习教案.pptx

    例如,加法是合并两个数,减法是已知和与一个加数求另一个加数,乘法是求多个相同数的和,而除法则是找到一个数可以被另一个数重复相乘得到的结果。 这些知识点构成了小学数学的基础,对于小升初的学生来说,理解和...

    小学数学数与代数的复习教学PPT学习教案.pptx

    小学数学的数与代数部分是数学学习的基础,涵盖了自然数、整数、计数法、数的读写、近似数、数的比较、小数、循环小数以及数的改写等多个重要概念。 1. **自然数、0和整数**:自然数包括0和所有正整数,如0, 1, 2, ...

    六年级数学总复习练习总复习1数的认识.doc

    1. 整数包括正整数、零和负整数,在给出的数中,整数有18、0、1。自然数是正整数和零的集合,所以自然数有18、0、1。小数是以小数点为分界线的数,包括小数部分和整数部分,小数有0.3、9.16、0.2604、0.806。有限...

    2021-2022年收藏的精品资料苏教版五年级数学上册期中测试卷.doc

    8. **找规律填空**:此题属于数列和图形序列的问题,根据给出的序列,可以发现每四个图形一组重复,即`☆☆★★`,所以第24个图形是第6组的第一个,是`☆`。前40个图形包含10组完整序列加上第11组的4个图形,因此有`...

    苏教版五年级上册数学期中试卷精选.doc

    2. **近似数的处理**:一个两位小数精确到十分位可能是5.3,最大的数是5.34(四舍五入得到5.3),最小的是5.25(五入得到5.3)。 3. **数的构成与表示**:由8个一和96个千分之一组成的数是8.096,保留整数是8,精确...

    2011年最新面试笔试题

    题目要求重新排列一个未排序的整数数组,使得所有负数位于所有正数之前,并保持原有的正负数之间的相对顺序。 #### 解决思路 1. 双指针法:定义两个指针,一个指向数组头部,另一个指向数组尾部。从头部向尾部遍历...

Global site tag (gtag.js) - Google Analytics