資料結構 串的模式匹配 BF演算法

2021-10-25 11:11:51 字數 1213 閱讀 5220

目錄

定義串的建立

串的比較

模式匹配

bf演算法 概述

bf** 效能

串(或字串)是由零個或多個字元組成的有限序列。

#define maxsize 100

typedef struct sqstring;

int strassign(sqstring &s,char cstr)

return s.length;

}

int strcmp(sqstring s, sqstring t)

if (s.length == t.length)return 0;

else if (s.length > t.length)return 1;

else return -1;

}

判斷串t是不是串s的字串,s稱為目標串,t稱為模式串。

bf(brute force),名字翻譯過來就是「簡單粗暴」,就是從s的第乙個字元開始嘗試匹配。如果匹配失敗就從s的下乙個字元開始(指標回溯)。這裡需要注意的是i=i-j+1的妙用,它能讓每次i都比j多1,從而實現「匹配失敗就從s的下乙個字元開始匹配」。

}測試:

#include "mystr.h"

#include int main()

設s長為n,t長為m。

最好的情況下s的開頭與t正好匹配,時間複雜度為o(m)。

最壞的情況下s的末尾才與t正好匹配,時間複雜度為o(m×n)。

平均的時間複雜度為o(m×n)。

BF演算法 串的模式匹配

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

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

子串的定位運算通常稱為串的模式匹配或串匹配。串的模式匹配設有兩個字串s和t,設s為主串,也稱正文串 設t為子串,也稱模式。在主串s中查詢與模式t相匹配的子串,如果匹配成功,確定相匹配的子串中的第乙個字元在主串s 現的位置。著名的模式匹配演算法有bf演算法和kmp演算法,下面介紹bf演算法。模式匹配不...

C語言資料結構字串的模式匹配 BF演算法

串的模式匹配 bf演算法 找到相同的字串輸出在原字串中的位置 代表匹配字串在原字串中的位置 include include include define strsize 255 字串的最大長度 typedef char strtype 字元數字型別 typedef int statu 函式返回值的資...