你不得不知道的5道海量数据题

来源:互联网 发布:phpstudy如何配置域名 编辑:程序博客网 时间:2024/05/20 09:47

        随着大数据的疯狂,在面试过程中,你也不得不了解了解其中的奥秘,我来总结总结你不得不知道的5到海量数据处理的题目

     10亿个数中找到前100大的数

         答:首先,在10亿数中的前100个数,建立最大堆;然后依次遍历,将这些数与这个最大堆进行比较,更新这个最大堆(只需要遍历一遍,就可以得到前n大的数据)

     1万个词中找到出现最频繁的前10个词

         答:用trie树统计每个词出现的次数,时间复杂度是O(n*l);然后可以用堆实现出现最频繁的前10个词

      10亿数中找出第100个大数

         答:使用堆排序,建立100的最大堆排序,然后得到第100大的数

      10亿个数中找到没有重复的数

         答:给每个整数再分配2bit,00代表不存在,01代表出现一次,10代表出现多次,遍历一遍整数群,如果是00,则变01;是01,则变10,是10,则保持不变,遍历结束后,查看bitmap,对应是01的整数输出

      在10亿个不重复的unsigned int整数,没有排序,然后给定一个数,快速判断这个数是否出现在这10亿个数中

         答:将这10亿个数用32位二进制来表示,待判断的数也表示为32位二进制的数,从高位到低位进行判断,按照第32位0或者1,将10亿数进行分类,如果待测数最高位是1,则在最高位为1的那一部分进行查找,否则,在最高位为0的那一部分查找,依次类推,如果找到,则出现,如果找到最后还没找到,则没有出现

原创粉丝点击