数据结构与算法串的模式匹配.docVIP

  • 14
  • 0
  • 约3.39千字
  • 约 6页
  • 2016-11-29 发布于北京
  • 举报
数据结构与算法串的模式匹配

KMP字符串模式匹配详解 KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.简单匹配算法 先来看一个简单匹配算法的函数: int Index_BF ( char S [ ], char T [ ], int pos ) { /* 若串 S 中从第pos(S 的下标0≤pos个字符 起存在和串 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 ???此算法的思想是直截了当的:将主串S中某个位置i起始的子串和模式串T相比较。即从 j=0 起比较 S[i+j] 与 T[j],若相等,则在主串 S 中存在以 i 为起始位置匹配成功的可能性,继续往后比

文档评论(0)

1亿VIP精品文档

相关文档