卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

kmp算法next計(jì)算方法 KMP算法中的nextval函數(shù)值的原理,求詳細(xì)推導(dǎo)?

KMP算法中的nextval函數(shù)值的原理,求詳細(xì)推導(dǎo)?1 get_nextval(int *nextval,const char *string)2 {3 int num=strlen

KMP算法中的nextval函數(shù)值的原理,求詳細(xì)推導(dǎo)?

1 get_nextval(int *nextval,const char *string)2 {3 int num=strlen(string)4 int i=0,j=-15 nextval[0]=-16 while(i

kmp算法什么意思?

KMP算法之所以叫做KMP算法是因?yàn)檫@個(gè)算法是由三個(gè)人共同提出來的,就取三個(gè)人名字的首字母作為該算法的名字。其實(shí)KMP算法與BF算法的區(qū)別就在于KMP算法巧妙的消除了指針i的回溯問題,只需確定下次匹配j的位置即可,使得問題的復(fù)雜度由O(mn)下降到O(m n)。  在KMP算法中,為了確定在匹配不成功時(shí),下次匹配時(shí)j的位置,引入了next[]數(shù)組,next[j]的值表示P[0...j-1]中最長(zhǎng)后綴的長(zhǎng)度等于相同字符序列的前綴?!?對(duì)于next[]數(shù)組的定義如下: 1) next[j] = -1 j = 0 2) next[j] = max(k): 0<k<j P[0...k-1]=P[j-k,j-1] 3) next[j] = 0 其他 如: P a b a b a j 0 1 2 3 4 next -1 0 0 1 2 即next[j]=k>0時(shí),表示P[0...k-1]=P[j-k,j-1] 因此KMP算法的思想就是:在匹配過程稱,若發(fā)生不匹配的情況,如果next[j]>=0,則目標(biāo)串的指針i不變,將模式串的指針j移動(dòng)到next[j]的位置繼續(xù)進(jìn)行匹配;若next[j]=-1,則將i右移1位,并將j置0,繼續(xù)進(jìn)行比較。