KMP算法
来源:互联网 发布:在线文书 知乎 编辑:程序博客网 时间:2024/04/30 19:00
下面是next数组的生成算法:
void GetNextEx(char *T, char *next)
{
int i=1,j=0; next[1] = 0;
while(i < T[0])
{
if (j == 0 || T[i] == T[j])
{
++i; ++j;
if (T[i] == T[j])
next[i] = next[j];
else
next[i] = j;
}
else j = next[j];
}
}
下面是KMP算法实现:
int KMP(char* S, char* T, int pos)
{
int i=pos, j=1;
while (i<S[0] && j<T[0])
{
if (S[i] == T[j]){ ++i; ++j; }
else j = next[j]
}
if (j>T[0]) return i-T[0];
else return 0;
}
现在是朴素算法:
int Index(char *S, char *T, int pos)
{
int i=pos,j=1;
while(i <= S[0] && j<=T[0])
{
if (S[i] == T[j]) { ++i; ++j;} //如果相同,则继续向后比较
else {i = i-j+2; j =1;} //如果不同,就回溯,重新查找
}
if (j>T[0]) return i-T[0];
else return 0;
}
- KMP算法详解 【KMP】
- 【KMP】KMP算法模板
- KMP hihoCoder1015 KMP算法
- kmp算法
- KMP算法
- KMP算法
- KMP算法
- KMP算法
- KMP 算法
- kmp算法
- KMP算法
- kmp算法
- KMP算法
- KMP算法
- kmp算法
- kmp算法
- KMP算法
- KMP算法
- 软件项目开发过程的风险性
- 关于计算机教育的感想
- [PHP快讯]ZEND将与IBM合作开发PHP IDE/Framework
- PHP6将实现的几个特性/功能
- 一起向诸葛亮学十堂课
- KMP算法
- 在名字空间中声明类和成员函数
- Eclipse Flash教程
- 操作系统实验_动态分区存储管理方式的主存分配回收
- 混音的艺术1
- C++图书热点观察[转]
- 用masm32创建快捷方式--使用com的演示程序
- 需求分析(起草)
- dj sasha 的电话访问