数据结构第四节.pptVIP

  • 0
  • 0
  • 约9.43千字
  • 约 50页
  • 2017-06-02 发布于湖北
  • 举报
从匹配过程看: 首先在(a)中p1=s1,p2=s2,p3≠s3,只需将模式右移到s3,不需将主串回溯到s2; 其次,由于p1≠p2,可推出p1≠s2,做(b)的比较一定不等;?再由p1=p3,可以推出p1≠s3,做(c)的比较也一定不等。 因此,由(a)便可直接将P右移三位跳到(d),从p1和t4开始进行比较,这样的匹配过程对S(主串)而言就消除了回溯。 为要找到一个无回溯的匹配算法,关键在于当匹配过程中,一旦pj和si比较不等,存在: substr(p,1,j-1)=substr(s,i-j+1,j-1) pj≠si 二、模式匹配算法 4.3 串的模式匹配算法 改进的模式匹配算法的思想: 在匹配过程中,当主串第i个字符与模式串第j个字符“失配”时,要产生模式串右移的位数和继续与主串(主串无回溯的)比较的字符,即应该用P中哪个字符和Si进行比较?把这个字符记为Pk,显然有kj,并且对不同的j,k值也不相同。这个k 值仅依赖于模式P本身前j个字符的构成,而与目标S无关。 一般用next[j]表示与j对应的k值,表明当模式中第j个字符与主串中第i个字符“失配”时,在模式中需重新和主串中第i字符进行比较的字符的位置。 二、模式匹配算法 4.3 串的模式匹配算法

文档评论(0)

1亿VIP精品文档

相关文档