網(wǎng)上有很多關(guān)于c語言簡單pos機,串的模式匹配算法的知識,也有很多人為大家解答關(guān)于c語言簡單pos機的問題,今天pos機之家(www.shineka.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
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算法實現(xiàn)時與BF算法區(qū)別
else{
j = next[j];//
}
}
if(j == child->length){
return (i + 1) - j;
}
以上就是關(guān)于c語言簡單pos機,串的模式匹配算法的知識,后面我們會繼續(xù)為大家整理關(guān)于c語言簡單pos機的知識,希望能夠幫助到大家!
