演算法原理
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演算法是一種蠻力演算法。...