数据结构与算法
文章平均质量分 86
SigalHu
热爱编程。。。。。
展开
-
海量数据处理算法:Bloom Filter[转]
原文:海量数据处理算法—Bloom Filter1. Bloom-Filter算法简介Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有转载 2017-07-17 19:16:32 · 365 阅读 · 0 评论 -
散列(hash)表算法[转]
原文:从头到尾彻底解析Hash表算法Top K 算法详解问题描述搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门),请你统计最热门的10个查询串,要求使用的内存不能超过1G。必备知识什么是哈希转载 2017-07-24 19:58:33 · 509 阅读 · 0 评论 -
最长回文子串:Manacher算法[转]
原文:Manacher 算法背景给定一个字符串,求出其最长回文子串。例如:s="abcd"; //最长回文长度为 1s="ababa"; //最长回文长度为 5s="abccb"; //最长回文长度为 4,即 bccb以上问题的传统思路大概是,遍历每一个字符,以该字符为中点向两边查找。其时间复杂度为O(n2)O(n^2),很不高效。而Manacher算法可以把时间复杂度提升到O(n)O(转载 2017-08-11 11:01:39 · 261 阅读 · 0 评论 -
字典序算法[转]
原文:字典序算法我们先看一个例子。示例:1 2 3的全排列如下:1 2 3 | 1 3 2 | 2 1 3 | 2 3 1 | 3 1 2 | 3 2 1我们这里是通过字典序法找出来的。那么什么是字典序法呢?从上面的全排列也可以看出来了,从左往右依次增大,对这就是字典序法。可是如何用算法来实现字典序法全排列呢?我们再来看一段文字描述:(用字典序法找124653的下一个排列)如果当前排列是12465转载 2017-07-15 10:07:12 · 2911 阅读 · 0 评论