BF演算法以及KMP演算法(待完善)

2021-09-27 06:01:51 字數 781 閱讀 2136

在匹配乙個字串,是否是另外乙個字串的子串時,我們通常來講想到乙個最簡單易懂的演算法,如下圖所示,先拿出字串t的零位和主串s進行配對,如果配對成功,這個時候主串的後面的字串便擁有了和子串t完全配對的可能性,我們需要進行下一步的配對。

如上圖,s[0]與t[0]配對成功,我們便進入配對過程,一直到s[6]與t[6]配對失敗,

這個時候我們需要回到與t[0]配對成功的時候,並將s串箭頭+1,t串箭頭維持在t[0]處,即s[1]與t[0]匹配,如果不匹配則s串箭頭繼續往後走,如果匹配則重複上面步驟。

**如下:

在理解了bf演算法之後,貼上**:

int bf(char *s, char *t)

else

} //匹配成功,返回子串t在主串s中的位置,否則返回-1

if(j == tl)

return i - j;

else

return -1;

}

BF演算法與KMP演算法

using system namespace kmp else count if j lenb 1 return i lenb else return 0 stathread static void main string args lenb p1.length,p2.length reval km...

BF演算法與KMP演算法

bf演算法思想 實現 public class bf int i 0 int j 0 i與j都從0號位置開始 while ilength j else if j sub.length 當j sub的長度時,說明sub陣列已經遍歷完了 else public static void main stri...

BF演算法與KMP演算法

bf演算法 即暴風 brute force 演算法,是普通的模式匹配演算法,它的思想就是將子串的第乙個字元與母串的第乙個字元進行匹配,若相等,則繼續比較子串的第二個字元和母串的第二個字元 若不相等,則比較母串的第二個字元和子串的第乙個字元,依次比較下去,知道得出最後的匹配結果。算是一種蠻力演算法。i...