BF模式匹配演算法改良

2021-09-20 04:58:27 字數 626 閱讀 9434

/*

*子串查詢(bf)

*bf演算法是帶回溯的模式匹配演算法,如果緩衝標記已做的匹配,減少回溯,可以提高時間效率,當然會犧牲空間,實際運用中需要做權衡考慮

*主串ms,長度為n

*子串ms,長度為n,n<=n

*初始認為ms的[0,n-n]與子串是匹配位置,將其加入乙個記錄陣列中,匹配個數為n-n+1

*將這些位置的字元與與子串第乙個字元比較,匹配的位置前移儲存,並記錄匹配個數

*繼續子串的其他字元進行比較,記錄匹配的位置及匹配個數

*返回匹配個數

*/#include

#include

int getsubpos(int *rec,char *ms,int n,char *ms,int n)

int size=n-n+1;

for(int i=0;ifor(int i=0; isize = psize; }

return size;

};int main(int argc,char **ar**) ;

int size = getsubpos(rec,ms,strlen(ms),ms,strlen(ms));

for(int i=0; ireturn 0;

};

模式匹配演算法 BF

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

模式匹配 BF演算法

bf演算法就是字串模式匹配的樸素演算法 即蠻力匹配 過程 設主串s,模式t 從s的第乙個字元和t的第乙個字元開始比較,如果匹配則從s的第二個字元與t的第二個字元開始匹配。如果某乙個字元匹配失敗,則進行回溯,s移至第二個字元,t歸為第乙個字元,比較s的第二個字元與t的第乙個字元。重複1,2步驟,直到匹...

BF演算法 串的模式匹配

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