根據演算法思路自己實現了kmp演算法(未優化)

2021-08-05 20:08:05 字數 392 閱讀 8254

貼一下**,日後再補充。

每一天都在嘗試提高對計算機的興趣,羨慕那些感興趣、努力並且效率很高的程式設計師或準程式設計師,處於尷尬境地的我也只能默默努力!馬上就大三了,不想一直高不成低不就的。

/** dandelion

* * 20170807

* kmp演算法

* */

#include #includeusing namespace std;

/**< len:匹配字串的長度 */

void getnext(int *next,string shortstr,int len){

/**q:匹配字串擷取長度*/

int q = 2;

for(;q<=len; q++)

{for(int i=1 ;i

KMP演算法解題思路

bf暴力演算法進行模式匹配由於需要回溯,導致演算法效率低,kmp演算法對其進行改進的一點就是在某趟匹配失敗後,主串不進行回溯,而子串回溯到某乙個位置k。子串的每乙個位置都對應著乙個k,要找出這些值,首先列出子串所有的字首,分別對每個字首找出其最長公共前字尾 需注意,最長公共前字尾必須小於原字首且要相...

KMP演算法的思路闡述

思路 主串和模式串進行匹配,當主串i指標所指的值與模式串j指標所指的值不同,這時已經比較的模式串中,假設j前面的一段與模式串從下標為 0 開始的一段重合,則可以直接把指標j從j處移至k處,使此時的主串i指標指的值與j指的值比較。求next j 的意義 方便讓j指的模式串的值在任何時候與主串的值對不上...

KMP演算法的自己體會和實現

資料結構講到字串匹配的時候,講到了乙個很優秀的演算法 kmp演算法!相對於傳統的匹配演算法,kmp演算法有自己的一定優勢。當字串中有很長的一段重複字元的時候,可以省略過很大的一部分無效比較。跟傳統的匹配演算法不同的是,kmp演算法引進了乙個新的東西 跳轉表,就是這個表在匹配時發揮了巨大的作用。這是課...