摘要: 本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。 本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来前缀匹配和后缀匹配的区别就仅仅在于比较的顺序不同。下文分别从最 简单的前缀蛮力匹配算法和后缀蛮力匹配算法入手,详细的介绍KMP算法和BM算法以及它们的实现。KMP算法首先来看一下前缀蛮力匹配算法的代码( 阅读全文
posted @ 2012-10-17 23:56 Mr.Rico 阅读(350) 评论(0) 推荐(0)
摘要: 最长公共子序列LCS采用动态规划的方法:问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X的子序列,存在X的一个严格递增下标序列,使得对所有... 阅读全文
posted @ 2012-10-17 23:45 Mr.Rico 阅读(2694) 评论(0) 推荐(2)
摘要: 在Linux中关于IP和无符号整数之间的转换有两个比较好的函数: int inet_aton(const char *cp, struct in_addr *inp); char *inet_ntoa(struct in_addr in); 通过函数名就可以知道函数作用了.这里需要注... 阅读全文
posted @ 2012-10-17 23:31 Mr.Rico 阅读(1002) 评论(0) 推荐(0)