被搜尋的字串稱為主串,待搜尋的字串稱為模式串。樸素模式匹配演算法的基本思想:
對主串的每乙個字元作為子串開頭,與模式串進行匹配。對主串做大迴圈,每個字元開頭做模式串長度的小迴圈,直到匹配成功或全部遍歷完成為止。**實現非常簡單:
int strstr(char *haystack, char *needle)
}}
樸素模式匹配演算法時間複雜度分析如下: 情況
時間複雜度 備註
最好情況
o(1)
一開始就匹配成功。
最壞情況
o((n-m+1)*m)
每次不成功的匹配都發生在模式串的最後乙個字元。
平均情況
o(n+m)
根據等概率原則,平均是(n+m)/2次查詢。
注:其中n為主串長度,m為模式串長度。
字串樸素模式匹配演算法 簡單模式匹配演算法
將主串中與模式串長度相同的子串搞出來,挨個與模式串對比 當子串與模式串某個對應字元不匹配時,就立即放棄當前子串,轉而檢索下乙個子串 若模式串長度為m,主串長度為n,則直到匹配成功 匹配失敗最多需要 n m 1 m次比較 最壞時間複雜度 o nm 最壞情況 每個子串的前m 1個字元都和模式串匹配,只有...
樸素字串匹配演算法
include include include define maxsize 40 define ok 1 define error 0 using namespace std typedef char string maxsize 1 int string assign string m,char...
演算法 樸素字串匹配
模式匹配是資料結構中字串的一種基本運算,給定乙個子串,要求在某個字串中找出與該子串相同的所有子串,這就是模式匹配。假設p是給定的子串,t是待查詢的字串,要求從t中找出與p相同的所有子串,這個問題成為模式匹配問題。p稱為模式,t稱為目標。如果t中存在乙個或多個模式為p的子串,就給出該子串在t中的位置,...