c語(yǔ)言簡(jiǎn)單pos機(jī),串的模式匹配算法

 新聞資訊2  |   2023-06-11 12:39  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于c語(yǔ)言簡(jiǎn)單pos機(jī),串的模式匹配算法的知識(shí),也有很多人為大家解答關(guān)于c語(yǔ)言簡(jiǎn)單pos機(jī)的問(wèn)題,今天pos機(jī)之家(www.mxllmx.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來(lái)看下吧!

本文目錄一覽:

1、c語(yǔ)言簡(jiǎn)單pos機(jī)

c語(yǔ)言簡(jiǎn)單pos機(jī)

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回到子串的第一個(gè)位置

}

}

if(j > child->length){

return i - child->length;

}

return 0;

}

KMP算法(不回溯指針i,利用部分匹配值將指針向右滑到盡可能遠(yuǎn)的距離,速度快):

部分匹配值的計(jì)算:

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算法實(shí)現(xiàn)時(shí)與BF算法區(qū)別

else{

j = next[j];//

}

}

if(j == child->length){

return (i + 1) - j;

}

以上就是關(guān)于c語(yǔ)言簡(jiǎn)單pos機(jī),串的模式匹配算法的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于c語(yǔ)言簡(jiǎn)單pos機(jī)的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)發(fā)請(qǐng)帶上網(wǎng)址:http://www.mxllmx.com/newsone/66306.html

你可能會(huì)喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。