KMP算法的实现
来源:互联网 发布:数据库完整性管理实验 编辑:程序博客网 时间:2024/05/06 08:15
今天又把KMP算法看了一边,虽然以前读过相关的代码,并且知道它里面的一些基本思想概念:如状态机、前缀串等,但一直没有认真体会,今天不同之处在于自己把相应的算法写出来,于是九牛二虎,写完以上代码。
在构造状态转移函数时,即这里的NEXT[]数组,最重要的一步是:
while( count>0 && p[num]!=p[count] ) count = next[count-1];
看上去两行代码,其实背后包含许多,如count本质是记录匹配的最长前缀长度,而next[count-1],p[count]再加一个while循环,实则是寻找一个更短的前缀。
在进行具体的字符串查找函数中,我自己写了int KMP(char* text_,char* pattern,int* next);比较好理解匹配的思想。
不过看完书上的代码后,惊叹与它的简洁,于是重写了int KMP_(const char* text,const char* pattern,const int* next);
代码精炼多了,不过理解起来确实也要费点时间。
有空把代码在重写几遍,加强理解。
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- kmp算法的实现
- kmp算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- KMP算法的实现
- java实现的KMP算法
- C++实现的KMP算法
- KMP算法的JAVA实现
- 项目使用中Linq使用总结
- A sentence for a day
- 没有合适的构造函数可用??
- 让非商业版的Qt编译的程序在任何电脑上运行
- 杂谈:选择游戏还是应用?
- KMP算法的实现
- Silverlight - NavigationService & UI Thread
- fcitx输入法
- memset函数
- c++的深拷贝与浅拷贝
- QHttp get的小例子
- How to use NSString and NSMutableString
- 推荐一些Linux下常用的软件
- 中国开发人员的地域分布图