using system;
namespace kmp
else
count++;
}if (j > lenb - 1)
return i - lenb;
else
return 0;
}[stathread]
static void main(string args)
,lenb=", p1.length, p2.length);
reval = kmp(p1, p2, pos);
console.writeline("====not kmp ====");
console.writeline("value=,count=", reval, count);
get_next(p2, next);
reval = index_kmp(p1, p2, pos);
console.writeline("====this is kmp ====");
console.writeline("value=,count=", reval, count);
get_goodnext(p2, next);
reval = index_kmp(p1, p2, pos);
console.writeline("====this is good kmp ====");
console.writeline("value=,count=", reval, count);
console.readline();
}static int index_kmp(char a, char b, int pos)
else
count++;
}if (j > lenb - 1)
return i - lenb;
else
return 0;
}static void get_next(char a, int next)
else}}
static void get_goodnext(char a, int next)
else
}else}}
}}
BF演算法與KMP演算法
bf演算法思想 實現 public class bf int i 0 int j 0 i與j都從0號位置開始 while ilength j else if j sub.length 當j sub的長度時,說明sub陣列已經遍歷完了 else public static void main stri...
BF演算法與KMP演算法
bf演算法 即暴風 brute force 演算法,是普通的模式匹配演算法,它的思想就是將子串的第乙個字元與母串的第乙個字元進行匹配,若相等,則繼續比較子串的第二個字元和母串的第二個字元 若不相等,則比較母串的第二個字元和子串的第乙個字元,依次比較下去,知道得出最後的匹配結果。算是一種蠻力演算法。i...
BF演算法與KMP演算法
這兩種演算法都是字串匹配演算法,通俗來說,就是得到子串在主串中的位置。bf演算法是普通 簡單 的查詢演算法,就是我們常說的暴力破解法。基本思想 圖示 分析 從bf演算法的思想可以得到他的時間複雜度為o m n 這是由於i指標一直要回退,但是有些情況不需要回退,就如上述圖示情況,回退之後和子串t還是不...