Kmp linux源码实现
2011-11-25 11:36
127 查看
voidkmp_init(const char *patn, int len, int *next)
{
int i, j;
next[0] = 0;
for (i = 1, j = 0; i < len; i ++) {
while (j > 0 && patn[j] != patn[i])
j = next[j - 1];
if (patn[j] == patn[i])
j ++;
next[i] = j;
}
}
intkmp_find(const char *text, int text_len, const char *patn,
int patn_len, int *next)
{
int i, j;
for (i = 0, j = 0; i < text_len; i ++ ) {
while (j > 0 && text[i] != patn[j])
j = next[j - 1];
if (text[i] == patn[j])
j ++;
if (j == patn_len)
return i + 1 - patn_len;
}
return -1;
}
{
int i, j;
next[0] = 0;
for (i = 1, j = 0; i < len; i ++) {
while (j > 0 && patn[j] != patn[i])
j = next[j - 1];
if (patn[j] == patn[i])
j ++;
next[i] = j;
}
}
intkmp_find(const char *text, int text_len, const char *patn,
int patn_len, int *next)
{
int i, j;
for (i = 0, j = 0; i < text_len; i ++ ) {
while (j > 0 && text[i] != patn[j])
j = next[j - 1];
if (text[i] == patn[j])
j ++;
if (j == patn_len)
return i + 1 - patn_len;
}
return -1;
}
相关文章推荐
- Linux下一个简单线程池实现的源码注释
- 【Linux4.1.12源码分析】AF_INET raw socket实现原理分析
- Linux环境下用OpenJTAG实现Linux内核的源码级调试
- linux内存源码分析 - 内存压缩(实现流程)
- 【Linux4.1.12源码分析】邻居子系统实现分析
- 【Linux4.1.12源码分析】邻居子系统实现分析 - ARP - ip_finish_output2()
- Linux下C语言实现C/S模式编程(附源码,运行截图)
- linux 0.11内核源码 malloc 的实现
- TX2平台下can总线收发功能的实现(二)——Linux下can总线编程模型和源码解读
- linux 2.6 互斥锁的实现-源码分析
- Linux源码-TCP网络服务器的实现
- 【Linux4.1.12源码分析】AF_PACKET raw socket实现原理分析
- Linux学习之web服务器(1)--基于源码实现SSL的安全连接
- Linux下基于UDP协议实现的聊天室项目(附源码)
- linux内存源码分析 - 内存压缩(实现流程)