
幼稚算法
文章平均质量分 75
topcoder1234
这个作者很懒,什么都没留下…
展开
-
排序
笔试面试时候考的概率比较高的算是排序算法了。后来我发现,虽然好多算法没用,但是背下来还是很有必要的,因为可以在面试的时候啪啪啪就给敲出来,给别人一种很熟练的感觉。呵呵。本人到现在基本没有算法经验,等于从零学起。不为别的,只为把自己提高一个境界。虽然以后可能不干程序员,但是希望能以程序员自居。测试数据 int arr[]={8,6,98,56,12,74,25,36};1. 简单选择排序 每次选择一个最小值插入到适当的位置上。 void SampleSelectionSort(int原创 2010-07-27 11:49:00 · 653 阅读 · 0 评论 -
跳跃表
本文将总结一种数据结构:跳跃表。前半部分跳跃表性质和操作的介绍直接摘自《让算法的效率跳起来--浅谈“跳跃表”的相关操作及其应用》上海市华东师范大学第二附属中学 魏冉。之后将附上跳跃表的源代码,以及本人对其的了解。难免有错误之处,希望指正,共同进步。谢谢。跳跃表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找、插入、删除等操作时的期望时间复杂度均为O(logn),有着近乎替代平衡树的本领。而且最重要的一点,就是它的编程复杂度较同类的AVL树,红黑树等要低得多,这使得其无论是在理解还是原创 2010-08-26 16:18:00 · 2063 阅读 · 2 评论 -
字典树
<br />字典树,又称单词查找树,Trie树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。<br /><br />它有三个基本性质,根节点不包含字符,除根节点外每一个节点都只包含一个字符,从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串,每个节点的所有子节点包含的字符都不相同。字典树的插入,删除和查找都非常简单,用一个一重循环即可。<原创 2010-09-16 09:59:00 · 7658 阅读 · 2 评论 -
后缀树
<br /><br />后缀树(Suffix Tree),包含了一个或者多个字符串的所有后缀,空字符串也算是其中一个后缀。字符串 bananas,其所有后缀为bananas ananas nanas anas nas as s $(表示空),我们可以把后缀树看作是所有后缀组成的一棵字典树,关于字典树请参考上一篇文章。<br /><br />下面的图片引用自http://www.cppblog.com/yuyang7/archive/2009/03/29/78252.html,感谢作者<br />在图中就不原创 2010-11-26 09:42:00 · 1222 阅读 · 0 评论 -
KMP算法
文章作者matrix67 http://www.matrix67.com/blog/archives/115 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段。 我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix",我们就说B是A的子串。你可以委婉地问你的MM:“假如转载 2010-12-16 10:45:00 · 1019 阅读 · 0 评论 -
AC 自动机
这篇文章也是转载的。 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)Trie和KMP模式匹配算法的基础知识。AC自动机算法分为3步:构造一棵Trie树,构造失败指针和模式匹配过程。 如果你对KMP算法和了解的话,应该知道KMP算法中的next函数(shift函转载 2010-12-20 16:13:00 · 1098 阅读 · 1 评论