Jason___Bourne 2015-07-25 13:05 采纳率: 0%
浏览 21249
已结题

给你一个含有1亿个QQ号码的文件,如何快速的查找某个QQ号码?

如题,我要找一个效率比较高的方法,欢迎大家来讨论。如果答案是暴力扫最快的话,我自扇耳光三百下!

  • 写回答

84条回答

  • 技术宅星云 博客专家认证 2015-07-25 15:58
    关注

    一个含有1亿个QQ号码的文件,面对这种大数据处理,还要满足最快查找到QQ的需求,如果是我,我会先从这几方面考虑。

    一、硬件配置

    二、编程语言

    三、算法

    四、查前判断

    五、存储区域

    -------------------------------且听我慢慢道来---------------------------

    一、硬件配置——命令行下运行的最快的计算机

                     想快点查找,兵器必须要好,那么就得做到以下几点:
    
                                         1. 操作系统
    
                                                放弃图形用户界面用命令行界面的操作系统,不解释。如果Windows和Linux之间,貌似只得选Linux了。
    
                                         2. 采用世界上最快的计算机
    
                                                国产的天河二号超级计算机,Cray超级计算机,、量子计算机,生物计算机,哪个最快就用哪个吧。
    
                                         3.世界上最快的计算机构成的服务器集群来最优共同合作处理。
    

    二、编程语言——尽量接近底层的编程语言

                     高级语言貌似总是没有低级语言的处理速度快,因此应该尽量使用接近底层的编程语言。
    

    三、算法——操作系统分页原理+时间复杂度最低的算法

                    题目中只求查询速度快即可,那么意思是不是只要时间复杂度低点,多牺牲点空间似乎也无所谓。
    
                                        始终觉得操作系统的分页查询原理很不错,在此基础上再使用一种时间复杂度最低的算法,那么速度应该会提高不少。
    
    四、查前判断
    
                      1.查询前先判断QQ位数
    
                                            查询之前,先判断QQ位数,可缩小一部分分页查询范围。
    
                                    2.逐位位数分页判断
    
                        从最高位开始判断每一位都进行判断,该位属于从哪一页,哪个表。
    

    五、存储区域——构造高速缓冲区

                    尽量存储到一个存取速度比较快的数据结构内,并放到存取速度最快的存储区内,位数判断后将满足的页加载到内存。
    

    异想天开班门弄斧胡言乱语一番,梦中不知所云。

    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面