摘要:
鉴于校园招聘笔试题,有个字符串模式匹配的问题,99+%都是暴力,偶尔一两个写KMP,但是明显是知其表不知其里。期待的 BM算法 或者 Sunday 没有出现!鉴于网友的回复,特此声明:我的代码假定字符串中的字符都在ASCII范围内想了解Sunday,可以查作者原著,不难找。By the way,国内有好多 Paper 是对Sunday的改进,我本人是忽略不计, 国内的Paper擅长这个。头文件定义:/* Sunday.h */class Sunday{public: Sunday(); ~Sunday();public: int find(const char* pattern, const 阅读全文
摘要:
SUNDAY 算法描述:字符串查找算法中,最著名的两个是KMP算法(Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。两个算法在最坏情况下均具有线性的查找时间。但是在实用上,KMP算法并不比最简单的c库函数strstr()快多少,而BM算法则往往比KMP算法快上3-5倍。但是BM算法还不是最快的算法,这里介绍一种比BM算法更快一些的查找算法。例如我们要在"substring searching algorithm"查找"search",刚开始时,把子串与文本左边对齐:substring searching algorithmse 阅读全文