zoukankan      html  css  js  c++  java
  • 104-算法应用【布隆过滤器】代码实现

    布隆过滤器


    本文链接:https://www.cnblogs.com/cheng2839

    介绍

    
    

    位图,是布隆过滤器的基础

    
    

    分析

    
    

    布隆过滤器的思想很简单,接下来我们实现一个“位”操作的实现。

    
    

    实现

    
    

    下面是用java实现算法:

    /**
     * @Description 位操作
     * @Author cheng2839
     * @Date
     * @Version v1.0
     * 本文链接 https://www.cnblogs.com/cheng2839
     */
    public class $BitUtils {
    
        //可支持的最大bit空间(8GB)
        private static final int MAX_SIZE = 0x7FFFFFFF;
        private static int[] bitData;
    //int类型代表的bit位数
    private static final int BASE_BITS = 0x00000020; /** * 申请一个自定义大小的bit * @param size * @return */ public static int[] init(int size) { if (size <= 0 || size > MAX_SIZE) { throw new IllegalStateException("size is illegal or too larger :" + size); } //一个int占4字节(B),即32bit bitData = new int[size / BASE_BITS + (size % BASE_BITS == 0 ? 0 : 1)]; return bitData; } public static int getBit(int index) { return (bitData[index/BASE_BITS] >> (index % BASE_BITS)) & 1; } public static void setBit(int index, boolean flag) { bitData[index / BASE_BITS] = flag ? bitData[index / BASE_BITS] | (1 << (index % BASE_BITS)) : bitData[index / BASE_BITS] & (0xFFFFFFFF - (1 << (index % BASE_BITS))); } public static void main(String[] args) { int size = 35; init(size); setBit(0, true); setBit(32, true); setBit(32, false); for (int i = 0; i < size; i++) System.out.println(i + " : " + getBit(i)); } }
     
    ____________________________特此,勉励____________________________
    本文作者cheng2839
    本文链接https://www.cnblogs.com/cheng2839
    关于博主:评论和私信会在第一时间回复。
    版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
  • 相关阅读:
    netmeeting使用收集
    开始Nunit学习(1)
    数据库信息查询(作者不是我)
    2月到5月的总结
    最近学到的一些东西
    gridview无法绑定datarow[]的解决
    asp.net控件开发(二)简单属性
    javascript 获取页面高度(多种浏览器)(转)
    My Asp.net Ajax Trip(一) Using For UpdatePanel
    asp.net 控件开发(一)显示控件内容
  • 原文地址:https://www.cnblogs.com/cheng2839/p/14598156.html
Copyright © 2011-2022 走看看