c语言简单pos机,串的模式匹配算法

 新闻资讯2  |   2023-06-11 12:39  |  投稿人:pos机之家

网上有很多关于c语言简单pos机,串的模式匹配算法的知识,也有很多人为大家解答关于c语言简单pos机的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!

本文目录一览:

1、c语言简单pos机

c语言简单pos机

BF算法(穷举):

int i = pos;//i用于主串parent中的起始位置

int j = 1; //子串的起始位置

while(i <= parent->length && j <= child->length){

if(parent->ch[i - 1] == child->ch[j - 1]){

i++;

j++;

}else{

i = i - j + 2; //i回朔到上次匹配的首位的下一位

j = 1; //j回到子串的第一个位置

}

}

if(j > child->length){

return i - child->length;

}

return 0;

}

KMP算法(不回溯指针i,利用部分匹配值将指针向右滑到尽可能远的距离,速度快):

部分匹配值的计算:

int i = 0;

int j = -1;

next[0] = -1;

while(i < child.length){

if(j == -1 || child.ch[i] == child.ch[j]){

++i;

++j;

next[i] = j;

}else{

j = next[j];

}

}

KMP算法实现时与BF算法区别

else{

j = next[j];//

}

}

if(j == child->length){

return (i + 1) - j;

}

以上就是关于c语言简单pos机,串的模式匹配算法的知识,后面我们会继续为大家整理关于c语言简单pos机的知识,希望能够帮助到大家!

转发请带上网址:http://www.poszjia.com/newsone/66306.html

你可能会喜欢:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 babsan@163.com 举报,一经查实,本站将立刻删除。