KMP字符串模式匹配详解

来源:互联网 发布:中国大数据领军人物 编辑:程序博客网 时间:2024/06/06 08:24

来自CSDN     A_B_C_ABC 网友

KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。

简单匹配算法的时间复杂度为O(m*n)。

KMP匹配算法可以证明它的时间复杂度为O(m+n)。

一.  简单匹配算法

int Index_BF ( char S[], char T[], int pos ){ /* 若串 S 中从第pos(S 的下标0≤pos<StrLength(S))个字符** 起存在和串 T 相同的子串,则称匹配成功,返回第一个** 这样的子串在串 S 中的下标,否则返回 -1  */int i = pos, j = 0; while ( S[i+j] != '\0'&& T[j] != '\0'){if ( S[i+j] == T[j] ) {j ++; // 继续比较后一字符}else { i ++; j = 0; // 重新开始新的一轮匹配}}if ( T[j] == '\0')return i;// 匹配成功   返回下标else return -1;// 串S中(第pos个字符起)不存在和串T相同的子串} // Index_BF


原创粉丝点击