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.逐位位数分页判断
    
                        从最高位开始判断每一位都进行判断,该位属于从哪一页,哪个表。
    

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

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题