11 2013 档案

Horspool 字符串匹配算法
摘要:Horspool 字符串匹配算法对Boyer-Moore算法的简化算法。Horspool 算法是一种基于后缀匹配的方法,是一种“跳跃式”匹配算法,具有sub-linear亚线性时间复杂度。Horspool 算法: 对于每个搜索窗口,该算法将窗口内的最后一个字符和模式串中的最后一个字符进行比较。如果相等,则需要进行一个校验过程。该校验过程在搜索窗口中从后向前对文本和模式串进行比较,直到完全相等或者在某个字符处不匹配。无论匹配与否,都将根据字符d在模式串中的下一个出现位置将窗口向右移动。 可以使用下图进行理解: (1)窗口大小与模式串大小相同,窗口内容为文本内容的一部分。 (2)对于窗口而... 阅读全文

posted @ 2013-11-22 16:59 旭东的博客 阅读(8092) 评论(0) 推荐(0) 编辑

设计模式之单例模式(线程安全)
摘要:可以说单例模式是所有设计模式中最简单的一种。单例模式就是说系统中对于某类的只能有一个对象,不可能出来第二个。单例模式也是23中设计模式中在面试时少数几个会要求写代码的模式之一。主要考察的是多线程下面单例模式的线程安全性问题。1.多线程安全单例模式实例一(不使用同步锁)1 public class Singleton {2 private static Singleton sin=new Singleton(); ///直接初始化一个实例对象3 private Singleton(){ ///private类型的构造函数,保证其他类对象不能直接new一个该对象的实例4... 阅读全文

posted @ 2013-11-21 09:33 旭东的博客 阅读(99918) 评论(10) 推荐(9) 编辑

Aho-Corasick 多模式匹配算法、AC自动机详解
摘要:Aho-Corasick算法是多模式匹配中的经典算法,目前在实际应用中较多。Aho-Corasick算法对应的数据结构是Aho-Corasick自动机,简称AC自动机。搞编程的一般都应该知道自动机FA吧,具体细分为:确定性有限状态自动机(DFA)和非确定性有限状态自动机NFA。普通的自动机不能进行多模式匹配,AC自动机增加了失败转移,转移到已经输入成功的文本的后缀,来实现。1.多模式匹配 多模式匹配就是有多个模式串P1,P2,P3...,Pm,求出所有这些模式串在连续文本T1....n中的所有可能出现的位置。 例如:求出模式集合{"nihao","hao" 阅读全文

posted @ 2013-11-20 14:25 旭东的博客 阅读(42390) 评论(3) 推荐(5) 编辑

标准C++中的string类的用法总结
摘要:[转自]http://www.cnblogs.com/xfreedom/archive/2011/05/16/2048037.html要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstring的用法是一样的,以下只用string作介绍:string类的构造函数:string(const char *s); //用 阅读全文

posted @ 2013-11-19 21:28 旭东的博客 阅读(666) 评论(0) 推荐(0) 编辑

STL队列 之FIFO队列(queue)、优先队列(priority_queue)、双端队列(deque)
摘要:1.FIFO队列 std::queue就是普通意思上的FIFO队列在STL中的模版。 1.1主要的方法有: (1)T front():访问队列的对头元素,并不删除对头元素 (2)T back():访问队列的末尾元素,并不删除末尾元素 (3)void pop():删除对头元素。 (4)void push(T):元素入队 1.2代码实例 1 #include 2 #include 3 using namespace std; 4 int main() 5 { 6 std::queue myqueue; 7 myqueue.push(11); ... 阅读全文

posted @ 2013-11-18 21:50 旭东的博客 阅读(3579) 评论(0) 推荐(1) 编辑

linux下文件合并、分割、去重
摘要:1.文件合并1.1文件上下合并 cat f1 f2> muti (将文件f1、f2合并成文件muti,f1在上,f2在下)1.2左右合并 paste f1 f2 > muti(将文件f1、f2合并成文件muti,f1在左,f2在右,默认使用tab键隔开)2.文件分割2.1按行数分割 split -l 5 file (将文件file进行分割,每个分割后的小文件,行数不大于5)2.2按大小切割 spilt -C 20M file (将文件file进行分割,每个分割后的文件最大为20M)3.文件去重3.1 可以使用sort命令 sort -u mm(对mm文件进行排序,重复的行只取一次) 阅读全文

posted @ 2013-11-18 15:41 旭东的博客 阅读(1344) 评论(0) 推荐(0) 编辑

设计模式之观察者模式(Observable与Observer)
摘要:好久没有写博客啦,之前看完了《设计模式之禅》也没有总结一下,现在回忆一下设计模式之观察者模式。1.什么是观察者模式 简单情形:有A、B、C、D等四个独立的对象,其中B、C、D这三个对象想在A对象发生改变的第一时间知道这种改变,以便做出相应的响应或者对策。 上面的这种情形,就是观察者模式。 当然可以有多个观察者,多个被观察者。 观察者与被观察者也不是对立的,一个对象可以观察其他对象,也可以被其他对象观察。2.观察者模式的应用 为了更好的理解什么是观察者模式,下面我举一些可能用到该模式的情形或例子: (1)周期性任务。比如linux中的周期性任务命令crontab命令,win7下的定时... 阅读全文

posted @ 2013-11-17 19:48 旭东的博客 阅读(24310) 评论(4) 推荐(5) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示