算法
文章平均质量分 92
pirates
乐观 开朗 努力 向上
展开
-
Dynamic Count Filter
Spectral bloom filter(SBF)在counting bloom filter(CBF)的基础上提出了元素出现频率查询的概念,将CBF的应用扩展到了multi-set的领域。但是,SBF为解决动态counter的存储问题,引入了复杂的索引结构,这让每个counter的访问变得复杂而耗时。有没有一种解决方案既支持元素出现频率查询,结构又相对比较简单呢?Dynamic cou转载 2013-03-30 22:40:33 · 1143 阅读 · 0 评论 -
快速排序
快速排序 什么是快排? 由C. A. R. Hoare在1962年提出,它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 时间复杂度:平均:O(n*lgn) 最坏:O(n^2) 空间复杂度:平均O(lgn) 最坏O(n)需要一原创 2013-07-10 14:57:41 · 2212 阅读 · 0 评论 -
动态规划DP持续分析(update)
动态规划是什么?一种算法?NO。DP是一种解决一类问题的方法,不是某一种特定的算法。最优子结构性质,这也是标志一个问题可以用DP来解决的一个元素性质。最优子结构:如果一个问题的最优解包含子问题的最优解,则该问题具有最优子结构。这也是标志一个问题可以用DP来解决的另一个元素性质,重叠子问题性质。重叠子问题要求最优子结构要很小,为啥呢?因为要求可以反复递归解决同样的子问题,而不是不停的产生新的子问题(分治法每次递归都产生新的子问题)。当一个递归算法不断重复调用同一个子问题时,我们就说该问题包含重叠子问题,原创 2013-07-21 00:10:07 · 4160 阅读 · 3 评论 -
平摊分析
我们经常在处理数据结构的时间复杂度的时候,大多数操作代价很低,可是由于某些个别操作的代价较高,导致最后求得时间复杂度的上界不是那么的紧凑。在平摊分析中,执行一系列数据结构操作所需要的时间是通过对执行的所有操作求平均而得出的。平摊分析可用来证明在一系列操作中,即使单一的操作具有较大的代价,通过对所有操作求平均后,平均代价还是很小的。平摊分析与平均情况分析的不同之处在于它不牵涉到概率。这种分析保证了在最坏情况下每个操作具有平均性能。原创 2013-08-12 00:07:52 · 5235 阅读 · 5 评论 -
回溯法
回溯法其实是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索试探,在探索试探过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反复进行,直至得到解或证明无解。原创 2013-08-24 19:17:44 · 3731 阅读 · 0 评论 -
贪心算法详解
贪心算法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。也就是说贪心对于算法的每一个决策点,每一次的选择,做一个当时看起来是最佳的选择。它并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。贪心算法对于大部分的优化问题都能产生最优解,但不能总获得整体最优解,通常可以获得近似最优解。原创 2013-08-18 13:32:43 · 7194 阅读 · 0 评论 -
最明白的KMP算法详解
如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段。 我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix",我们就说B是A的子串。你可以委婉地问你的MM:“假如转载 2013-09-08 22:14:18 · 1278 阅读 · 0 评论 -
背包问题详解
背包问题 背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的体积和价值,在限定的总体积内,我们如何选择,才能使得物品的总价值最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。相似问题经常出现在商业、组合数学,计算机复杂理论、密码学和应用数学等领域中。也可以将背包问题描述为决定性问题,即在总体积不超过V的前提下,总价值原创 2013-08-04 22:21:34 · 15541 阅读 · 2 评论 -
分治法
分治法 分治,分而治之也。将原问题划分成多个规模较小结构和原问题相似的子问题,分别递归解决这些子问题,然后将所有子问题的解合并即可得到原问题的解。 Divide:将原问题划分成一系列子问题 Conquer:分别递归解决子问题,如果子问题足够小,则可直接解决。 Combine:将子问题的结解合并一起成为原问题的解。 很多时候算法的设计都要靠分治策略。比如归并排序,也叫合并排序。原创 2013-07-10 14:19:51 · 1815 阅读 · 0 评论 -
各种排序算法整理
性能很重要吗?当然。有比性能更重要的吗?Exp:正确性,安全性,简洁,可扩展,用户友好等等?可是为什么我们来说性能,因为性能是最重要的。好比钱不重要,但是没有钱你很多事做不了。性能就是如此,它是潜在的东西。你没有它,何谈正确、安全、用户友好。原创 2013-07-10 17:19:14 · 3556 阅读 · 0 评论 -
算法简述
什么是数据结构?严格定义是:数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的学科。数据结构也就是类似表、树、图、集合,相互之间一种或多种特定关系的数据的集合。二元组(D,S)D代表数据集,S是D上的关系。有数据,有数据之间的关系,这就是数据结构。什么是数据类型?一个值的集合以及定义在这个值的集合上的一系列的操作。Int float 结构体,对原创 2013-07-03 16:03:40 · 1361 阅读 · 0 评论 -
Bloom Filter概念和原理
Bloom Filter概念和原理焦萌 2007年1月27日 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter转载 2013-03-30 22:31:16 · 912 阅读 · 0 评论 -
Counting Bloom Filter
Counting Bloom Filter焦萌 2007年1月30日 从前面几篇对Bloom Filter的介绍可以看出,标准的Bloom Filter是一种很简单的数据结构,它只支持插入和查找两种操作。在所要表达的集合是静态集合的时候,标准Bloom Filter可以很好地工作,但是如果要表达的集合经常变动,标准Bloom Filter的弊端就显现出来了,因为它不支持删除操作。转载 2013-03-30 22:40:06 · 1001 阅读 · 0 评论 -
海量数据处理之Bloom Filter详解
前言 本博客内曾已经整理过十道海量数据处理面试题与十个方法大总结。接下来,本博客内会重点分析那些海量数据处理的方法,并重写十道海量数据处理的面试题。如果有任何问题,欢迎不吝指正。谢谢。一、什么是Bloom Filter Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom F转载 2013-03-30 22:32:03 · 1767 阅读 · 0 评论 -
十一、从头到尾彻底解析Hash表算法
十一、从头到尾彻底解析Hash 表算法作者:July、wuliming、pkuoliver 出处:http://blog.csdn.net/v_JULY_v。 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。------------------------转载 2013-03-30 22:42:46 · 951 阅读 · 0 评论 -
经典算法研究系列:六、教你初步了解KMP算法、updated
教你初步了解KMP算法 作者: July 、saturnma、上善若水。 时间; 二零一一年一月一日-----------------------本文参考:数据结构(c语言版) 李云清等编著、算法导论引言:在文本编辑中,我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。由此,便产生了字符串的匹配问题。本文由简单的字符串匹配算法开始,再到转载 2013-03-30 22:50:30 · 918 阅读 · 0 评论 -
改进的筛素数法
最简单的筛素数法方法就是从2开始,将所以2的倍数去掉,然后从3开始,将3的倍数去掉。根据这样很容易写出代码,下面代码就是是筛素数法得到100以内的素数并保存到primes[]数组中。[cpp] view plaincopy//by MoreWindows( http://blog.csdn.net/MoreWindows ) const int转载 2013-07-09 18:43:57 · 871 阅读 · 0 评论 -
搜索智能提示suggestion,附近点搜索
第三十六~三十七章、搜索智能提示suggestion,附近地点搜索作者:July。致谢:caopengcs、胡果果。时间:二零一三年九月七日。题记 写博的近三年,整理了太多太多的笔试面试题,如微软面试100题系列,和眼下这个程序员编程艺术系列,真心觉得题目年年变,但解决问题的方法永远都是那几种,用心准备后,自会发现一切有迹可循。转载 2013-09-12 22:38:52 · 1555 阅读 · 0 评论