zoukankan      html  css  js  c++  java
  • 面试问题2:给一个5G的大文件,保存的数据为32位的整型,找到所有出现次数超过两次的数字

    问题描述:给一个5G的大文件,保存的数据为32位的整型,找到所有出现次数超过两次的数字

      大数据操作:

      解决方法一:

      依次遍历文件数据,
      开始32二进制清0
      每次读取一个数,先和二进制位与,如果为0 则没有,再把数字与二进制数位或。如果为1,则输出这个数
      直到读取文件最后一个数字

    举例说明:

    0000 0000 0000 0000 0000 0000 0000 0000 开始的二进制位 倘若第一个数为2 那么
    0000 0000 0000 0000 0000 0000 0000 0010  开始位与 结果不为2, 则二进制里面没有2 这个数字,然后用二进制与当前数字或运算结果为
    0000 0000 0000 0000 0000 0000 0000 0010  再次读取一个数字 如果为 3 则开始先和新的二进制数位与
    0000 0000 0000 0000 0000 0000 0000 0011 位与结果为 0000 0000 0000 0000 0000 0000 0000 0010 结果不是3 则在和二进制位与那么现在的二进制数为:
    0000 0000 0000 0000 0000 0000 0000 0011  在读取 一个数字 如果为8 和二进制数为与
    0000 0000 0000 0000 0000 0000 0000 1000 结果为0,不等于,说明没有8,则再次为或
    0000 0000 0000 0000 0000 0000 0000 1011 新的二进制数,在读取一个数字,如果为8 
    0000 0000 0000 0000 0000 0000 0000 1000 位与,等于........1000  位与结果为8 那么8 就是出现2次的那个数字,
    一下同理读取文件数据,直到文件结束。

  • 相关阅读:
    安装高版本的docker
    Apache JMeter汉化手册
    安装python包
    Jmeter Cluster
    doc下设置永久环境变量的好方法
    jmeter非常好的博客收藏
    mysql-学习链接
    python 脚本
    常见python快捷键
    2015年心情随笔--周围太烦躁,我想静静
  • 原文地址:https://www.cnblogs.com/zpfbuaa/p/5330176.html
Copyright © 2011-2022 走看看