摘要:
首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配 阅读全文
摘要:
js分治算法实现大整数相加,算法复杂度为O(n/15) js分治算法实现大整数相减,算法复杂度为O(n/15)+比较大小0-n/15; 测试 输出结果: -108899999999999999999999999999999-217800000000000000000000000000000-1234 阅读全文
摘要:
Trie Tree 简介 Trie Tree,又称单词字典树、查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 性质 它有3个基本性质: 根节 阅读全文
摘要:
布隆过滤器(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的字符映射关系 阅读全文
摘要:
方法1: 浏览器自带的一个方法 方法2: 正则匹配 阅读全文
摘要:
数学类cc.js //计算几何误差修正 Math.EPS=0.00000001; //判断x的符号 Math.cmp=function(x) { if(Math.abs(x)<Math.EPS)return 0; if(x>0){ return 1; }else{ return -1; } } // 阅读全文
摘要:
demo地址:http://www.caoke.xyz/ 阅读全文