
算法分析
zhoulv2000
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
字符串系列之最长回文子串
问题描述: 给定一个字符串S=A1A2...An,要求找出其最长回文子串(Longest Palindromic Substring)。所谓回文子串就是S的某个子串Ai...Aj为回文。例如,对字符串S=abcdcbeba,它的回文子串有:bcdcb,cdc,beb,满足题目要求的最长回文子串为bcdcb。推理思路:1.由于回文可能由奇数个字符组成,也可能由偶数个字符转载 2013-09-29 13:32:25 · 887 阅读 · 0 评论 -
欧几里德与扩展欧几里德算法详解
欧几里得算法:定理1:设a,b,c,q都为整数,且b>0。如果 a = q*b+c,那么 gcd(a, b) = gcd(b, c)证明方法用了集合的方法,就是说明一个的约数必定是另一个数的约数,从而两个数相等。证明过程:由于可以写成a = q*b+c(a>b),那么设a和b的最大公约数为g;证明g为c的公约数:因为a%g==0,所以(q*b+c)%g==0,又应为原创 2013-11-06 16:45:47 · 839 阅读 · 0 评论 -
详解B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关原创 2014-04-14 19:16:24 · 716 阅读 · 0 评论 -
字符串匹配---KMP,Horspool,Boyer-Moore和Sunday等算法
KMP虽然经典,但是理解起来极其复杂,好不容易理解好了,便起码来巨麻烦!老子就是今天图书馆在写了几个小时才勉强写了一个有bug的、效率不高的KMP,特别是计算next数组的部分。其实,比KMP算法速度快的算法大把大把,而且理解起来更简单,为何非要抓住KMP呢?笔试出现字符串模式匹配时直接上sunday算法,既简单又高效,何乐而不为?说实话,想到sunday算法的那个人,绝对是发散思转载 2014-04-16 19:17:46 · 1939 阅读 · 0 评论 -
面试问题系列:一致性哈希算法(consistent hashing)
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1.问题描述比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的转载 2013-11-07 09:16:54 · 855 阅读 · 0 评论 -
跳跃表详解
【引言】二叉树是我们都非常熟悉的一种数据结构。它支持包括查找、插入、删除等一系列的操作。但它有一个致命的弱点,就是当数据的随机性不够时,会导致其树型结构的不平衡,从而直接影响到算法的效率。跳跃表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找、插入、删除等操作时的期望时间复杂度均为O(logn),有着近乎替代平衡树的本领。 而且最重要的一点,就是它的编转载 2014-06-24 12:31:09 · 943 阅读 · 0 评论