algorithm
文章平均质量分 82
zhujunwsk
这个作者很懒,什么都没留下…
展开
-
堆排序
一、要实现堆排序首先要理解堆相关的一些重要概念。 (1)什么是堆,堆于优先队列的关系? 堆实际上是优先队列数据结构的实现,也可以说,堆是具有优先队列性质的容器实现。 优先队列是允许下面两个操作的数据结构:Insert Del转载 2011-08-09 11:57:58 · 395 阅读 · 0 评论 -
约瑟夫环问题的优化
问题描述:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,求最后一个出列人的编号。用循环的方法模拟这个过程的解,算法复杂转载 2011-08-11 10:50:49 · 761 阅读 · 0 评论 -
【串和序列处理 1】PAT Tree 子串匹配结构
Patricia Tree 简称PAT tree。 它是 trie 结构的一种特殊形式。是目前信息检索领域应用十分成功的索引方法,它是1992年由Connel根据《PATRICIA——Patrical Algorithm to Retrieve Information Coded in Alphanumeric》算法发展起来的。 PAT tree 在字符串子串匹配 上有这非常优异转载 2012-01-09 14:12:17 · 753 阅读 · 0 评论 -
【串和序列处理 4】动态查找树比较
我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)。这四种树都具备下面几个优势:(1) 都是动态结构。在删除,插入操作的时候,都不需要彻底重建原始的索引树。最多就是执行一定量的旋转,变色操作来有限的改变树的形态。而这些操作所付出的代价都远远小于重建一棵树。(2) 查找的时间复杂度大体维持在O(log(N)转载 2012-01-09 15:42:48 · 704 阅读 · 0 评论 -
【串和序列处理 2】Trie Tree 串集合查找
Trie 树, 又称字典树,单词查找树。它来源于retrieval(检索)中取中间四个字符构成(读音同try)。用于存储大量的字符串以便支持快速模式匹配。主要应用在信息检索领域。Trie 有三种结构: 标准trie (standard trie)、压缩trie、后缀trie(suffix trie) 。最后一种将在《字符串处理4:后缀树》中详细讲,这里只将前两种。 1. 标准Trie转载 2012-01-09 14:46:45 · 1285 阅读 · 0 评论 -
【串和序列处理 3】Suffix Tree 子串匹配结构
一道Amazon的面试题:找出给定字符串里的最长回文。例子:输入XMADAMYX。则输出MADAM。这道题的流行解法是用后缀树(Suffix Tree)。这坨数据结构最酷的地方是用它能高效解决一大票复杂的字符串编程问题: Suffix Tree : 又称后缀Tree或后缀树。它与Trie树的最大不同在于,后缀Tree的字符串集合是由指定字符串的后缀子串构成的。给定一长度为n的字符串S转载 2012-01-09 15:14:04 · 2369 阅读 · 0 评论 -
【串和序列处理 5】总结---自动机,KMP算法,Extend-KMP,后缀树,后缀数组,trie树,trie图及其应用
涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机,KMP算法,Extend-KMP,后缀树,后缀数组,trie树,trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中,我们只要用简单的暴力算法就可以解决了,然后如果暴力效率太低,就用个hash。当然hash也是一个面试转载 2012-01-10 09:42:23 · 1612 阅读 · 0 评论