字串模式匹配之BF演算法

2021-06-19 17:25:13 字數 877 閱讀 4589

演算法原理

bf(brute force)演算法是字串模式匹配中原理最簡單,也是最直觀的演算法。基本思想是從源字串s中查詢目的字串p,從s中的n個字元開始和p的第乙個字元開始比較,若相等,則繼續分別取s和p的下乙個字元繼續比較,一次類推,直到源字串s中的某一連續串和p完全相等,則匹配成功。如果在匹配的過程中發現有不相等的情況,則需要回退至s字串中的第n+1字串開始,重新和目的字串繼續比較,如此迴圈。

舉乙個簡單例子,在目的字串s(sabcsoul)中查詢p(soul),第一次比較: s中的第乙個字元's' = p中的第乙個字元's',則繼續比較彼此的下乙個字元,發現s中的'a'和p中的'o'不相等,則第一次比較結束。第二次比較:從s中的第二個字元開始重新和p字串比較,發現'a'不等於's',則結束本次比較。第三次比較,..., 一次類推。  

演算法複雜度

o((n-m)m)

演算法特點

原理簡單、直觀,但是效率很低。

演算法c語言實現

#include 

#include

int bf_strfind(char srcstr, char dststr)

srclen = strlen(srcstr);

dstlen = strlen(dststr);

while (i < srclen && j < dstlen)

else

} if (tmp >= srclen)

else }

void main()

else

}

字串模式匹配演算法 BF演算法

include include intbf char str1,char str2,int length1,int length2,int pos int main 字串模式匹配演算法 str1為主串,str2為子串 length1為主串長度,length2為子串長度,intbf char str1...

BF模式匹配演算法!字串的模式匹配。

problem description 實現串的bf模式匹配演算法,統計在匹配過程中總的字元比較次數,當主串剩餘部分不足子串長度時,停止比較。input 輸入包含兩行,第一行為主串s,第二行為子串t。output 輸出包含兩行,第一行為子串在主串中的位置,如果失配,返回0值 第二行為匹配過程中總的字...

字串的模式匹配 BF演算法

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