2013年8月2日

线段树学习

摘要: 1、概述 线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即"子数组"),因而常用于解决数列维护问题,它基本能保证每个操作的复杂度为O(lgN)。 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示... 阅读全文

posted @ 2013-08-02 18:49 零风腾飞 阅读(675) 评论(0) 推荐(0) 编辑

二叉树的非递归遍历

摘要: 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历 前序遍历按... 阅读全文

posted @ 2013-08-02 18:48 零风腾飞 阅读(251) 评论(0) 推荐(0) 编辑

[转+整理]十道海量数据处理面试题与十个方法大总结

摘要: 海量数据处理:十道面试题与十个海量数据处理方法总结 作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。 出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题 1、海量日志数据,提取出某日访问百度次... 阅读全文

posted @ 2013-08-02 18:37 零风腾飞 阅读(296) 评论(0) 推荐(0) 编辑

memcopy 和 memmove 的实现

摘要: 一 memcopy 的实现 memcopy 不考虑源内存和目标内存之间的重叠, 逐字节地拷贝, 代码比较简单C代码 voidmy_memcopy(void*src,void*dst,intsize) {char*psrc,*pdst; psrc=(char*)src;pdst=(char*)dst;while... 阅读全文

posted @ 2013-08-02 18:35 零风腾飞 阅读(431) 评论(0) 推荐(0) 编辑

[转]BM 算法中“好后缀”预处理

摘要: 其实上次在写 BM 算法的原理时,应该把如何实现"好后缀"的预处理一起写上,只是因为急着出去,没有写清楚,只是一带而过,现在把预处理们仔细写一下,希望和对字符串处理技术感兴趣的朋友们探讨。当然,对于 BM 算法还有许多需要思考的,比如证明它的时间复杂度最坏是 O(m)等等问题,并不是一句话就能说明白的。 在上一篇文章中(精确字符串匹配(BM算法))提到了 L(i),它是用来存储 t' ... 阅读全文

posted @ 2013-08-02 18:34 零风腾飞 阅读(841) 评论(0) 推荐(0) 编辑

[转]精确字符串匹配(BM算法)

摘要: 上一篇文章介绍了精确字符串匹配的 Zbox 算法,这是一种线性时间复杂度的算法。在这篇文章里,将简要介绍精确字符串匹配的 Boyer-Moore(BM) 算法,这种算法的时间复杂度低于线性,所以是现在用的最多的一种方法。所谓精确字符串匹配问题,是在文本 T 中找到所有与查询P 精确匹配的子串。而 BM 算法可以非常有效地解决这个问题,让时间复杂度降到低于线形的水平。 BM 算法主要用了... 阅读全文

posted @ 2013-08-02 18:33 零风腾飞 阅读(437) 评论(0) 推荐(0) 编辑

[转]字符串匹配那些事

摘要: 本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来前缀... 阅读全文

posted @ 2013-08-02 18:32 零风腾飞 阅读(350) 评论(0) 推荐(0) 编辑

BM模式匹配算法原理(图解)

摘要: BM模式匹配算法原理(图解) 首先,先简单说明一下有关BM算法的一些基本概念。BM算法是一种精确字符串匹配算法(区别于模糊匹配)。BM算法采用从右向左比较 的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。BM算法的基本流程: 设文本串T,模式串为P。首先将T与P进行左对齐,然后进行从右向左比较 ,如下图所示: 若是某趟比较不匹配时,BM算法就... 阅读全文

posted @ 2013-08-02 18:31 零风腾飞 阅读(10114) 评论(0) 推荐(0) 编辑

分享一下字符串匹配BM算法学习心得

摘要: [转]分享一下字符串匹配BM算法学习心得。 字符串匹配BM(Boyer-Moore)算法学习心得 BM算法是Boyer-Moore算法的缩写,是一种基于后缀比较的模式串匹配算法。BM算法在最坏情况下可以做到线性的,平均情况下是亚线性的(即低于线性)。这也是他在实际应用中优于KMP算法的一个原因吧。最近突然在看[柔性字符串匹配].[Flexible.Pattern.Matching.in.... 阅读全文

posted @ 2013-08-02 18:30 零风腾飞 阅读(858) 评论(0) 推荐(0) 编辑

KMP算法

摘要: KMP算法 在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符... 阅读全文

posted @ 2013-08-02 18:29 零风腾飞 阅读(399) 评论(0) 推荐(0) 编辑

导航