zoukankan      html  css  js  c++  java
  • 计数算法

    问题一,判断一个字串的存在与否?

    一般常规是使用HashSet.

    但是,随着量的增长,性能也线性降低,同时JVM内存使用不断膨胀,最终无法承受,如下图所示:

     

    1.Bloom filter算法

    基于bit位数组与Hash functions。这种算法虽然高效,但并非精确,会有一定的误差。对于要求不是很精确,但内存很小的情况下可用,同时也是可以调整误差率。

     建议值:

    问题二,计数,出现的次数?

    一般用:

    但是大量的数也会使其不堪重负:

    算法1,CountMinSketch

     CountMinSketch cms=new CountMinSketch(100,100,2);
    cms.add(1,2);
    cms.add(2,5);
    cms.add(4,8);
    cms.add(8,20);
    cms.add(2,10);
    long cntOf2= cms.estimateCount(2);
    System.out.println("the count of 2 is :"+cntOf2);

    HyperLogLog 用于计算 基(cardinality):

  • 相关阅读:
    设置网络
    href
    webpack学习
    那些个像素
    jquery Id选择器与document.getElementByIdy区别
    又一个很垃圾的设计
    卸载QQ,360,迅雷,搜狗
    CheckFail设计很垃圾
    js写法【2】
    require的定义看不懂【2】
  • 原文地址:https://www.cnblogs.com/itdev/p/7148529.html
Copyright © 2011-2022 走看看