随笔分类 - 大数据算法
大数据算法
摘要://bitmap 判断是否存在 Buffer.prototype.hasBit=function(num){ const n=num>>3; const k=num%8; return (this[n]&1<<k)!==0 } Buffer.prototype.setBit=function(num
阅读全文
摘要:首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配
阅读全文
摘要:js分治算法实现大整数相加,算法复杂度为O(n/15) js分治算法实现大整数相减,算法复杂度为O(n/15)+比较大小0-n/15; 测试 输出结果: -108899999999999999999999999999999-217800000000000000000000000000000-1234
阅读全文
摘要:布隆过滤器(Bloom Filter) 是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。 基本概念 编辑 基本概念 如果想要判断一个元素
阅读全文
摘要:KMP算法 定义 Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。 下
阅读全文
摘要:实现详情请查看博客园 https://www.cnblogs.com/caoke/p/10793885.html 随机注册10万个放入BitMap,然后查询qq号码是否已存在,算法复杂度O(1). /usr/local/bin/node /Users/caoke/go/bitmap.js设置时间:
阅读全文
摘要:ckHash函数类,将字符串映射成数字,同时可以将数字映射成字符串 说明 1、所谓的BitMap就是用一个bit位来标记某个元素所对应的value,而key即是该元素,由于BitMap使用了bit位来存储数据,因此可以大大节省存储空间。 2、ckHash函数类适用于做key-value的字符映射关系
阅读全文