数据结构及算法
sunfengcai
这个作者很懒,什么都没留下…
展开
-
Trie树
Trie树 Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。一.Trie树的原理 利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。 下面以英文单词构建的字典树为例,这棵Trie树中每个结点包括26个孩子结点,因为总共有26个英文字母(假设单词都是转载 2015-10-17 21:30:19 · 352 阅读 · 0 评论 -
字符串匹配的KMP算法
字符串匹配的KMP算法作者: 阮一峰 发布时间: 2013-08-28 17:12 阅读: 58319 次 推荐: 128 原文链接 [收藏] 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这转载 2015-10-18 20:40:07 · 847 阅读 · 0 评论 -
KMP算法实现
/** * name:KMP * time:2012-11-22 * 字符串快速匹配 */ #include#includetypedef struct seqstring{ char string[100]; int length;}seqstring;void getnext(seqstring p,int next[]){ int i,j; next[0]=-转载 2015-10-20 12:25:41 · 371 阅读 · 0 评论 -
子集树和排列树
假设现在有一列数a[0],a[1], ...a[n-1]①如果一个问题的解的长度不是固定的,并且解和元素顺序无关,即可以从中选择0个或多个,那么解空间的个数将是指数级别的,为2^n,可以用下面的子集树来表示所有的解 子集树的算法框架为: ?12345678910void backtrack(int转载 2016-01-04 09:44:12 · 4282 阅读 · 0 评论 -
浅谈算法和数据结构: 八 平衡查找树之2-3树
浅谈算法和数据结构: 八 平衡查找树之2-3树转自:http://www.cnblogs.com/yangecnu/p/Introduce-2-3-Search-Tree.html前面介绍了二叉查找树(Binary Search Tree),他对于大多数情况下的查找和插入在效率上来说是没有问题的,但是他在最差的情况下效率比较低。本文及后面文章介绍的平衡查找树的数据结构能转载 2017-08-13 12:42:26 · 378 阅读 · 0 评论 -
浅谈算法和数据结构: 九 平衡查找树之红黑树
浅谈算法和数据结构: 九 平衡查找树之红黑树转自:http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树转载 2017-08-13 15:27:59 · 389 阅读 · 0 评论 -
浅谈算法和数据结构: 十 平衡查找树之B树
浅谈算法和数据结构: 十 平衡查找树之B树转自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html前面讲解了平衡查找树中的2-3树以及其实现红黑树。2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key。维基百科对B树的定义为“在计算机科学中,B树(B-转载 2017-08-13 15:44:36 · 411 阅读 · 0 评论