zoukankan      html  css  js  c++  java
  • bitmap算法

    1、位图是一种非常常用的结构,在数据压缩方面有广泛应用;

    2、如下图,假设是一个整型数据在内存中占用的的32位,从低位到高位,每一位分别对应十进制数字0~31,每bit上值为0或1,表示对应十进制数字是够存在;

    3、

    优点:效率高,占用内存少;

    缺点:无法对存在重复的数据进行排序或者查找,但是也可以有2bitmap。

    4、如何将十进制转换为对应的bit位?(仅考虑无符号整数)

    ①、首先求其在整型数组中的index,我们知道 a[0]对应0~31, a[1]对应32~63,...。所以,假设十进制数N,对应数组下标为index = N / 32 即可;

    ②、然后,寻找其对应数组中整数的哪一位?bitLoc = N % 32;

    ③、利用对a[i]进行移位操作,判断相应为是0或1,从而判断相应整数是否存在。

    5、拓展:也可以利用2bit对应一个整数,这样00,01,10,11四中情况就可以表示多种情况。

    不要让执行的勤奋掩盖思考的懒惰!
  • 相关阅读:
    css
    css加号波浪号
    C++对象池
    C++11 智能指针
    C++内存泄漏检测(调试工具)
    JSONP是个嘛玩意?解决跨域问题?
    使用django + KindEditor 开发个人博客系统
    前端文本框插件KindEditor
    jQuery AJAX
    Django ModelForm表单验证
  • 原文地址:https://www.cnblogs.com/zhiyangjava/p/6512496.html
Copyright © 2011-2022 走看看