串的——模式匹配算法

    技术2025-03-31  9

    一:一般的模式匹配算法第一趟 a b a b c a b c a c b a b                         

                  a b c a c                                                         

    第二趟 a  b  a  b c a b c a c b a b

                      a  b  c a c

    第三趟 a b  a  b c a b c a c b a b                     a  b c a c

    第四趟 a   b   b c a b c a c b a b                      a b c a c

    第五趟 a b a b c a b c a c b a b                          a b c a c

    第五趟 a b a b c a b c a c b a b                            a b c a c

     算法描述:(必定要用二次循环,因为每比一次要用for循环一 次,二需要比较多次,所以必定要用二个  for嵌套循环)

    设串A、B分别用数组aa[100]与数组bb[100]存储

    第一种描述方法:

        for(int i=0;i<n;i++)

      {

           if(aa[i]==bb[0])

         {

             k=i;

              for(int j=0;j<m;i++;j++)

             {  if(aa[k]!=bb[j]) break;

             }

             if(j==m) printf("is found in aa")

         }

    第二种描述方法:

     int Normal(int pos){ int i,j; i=pos;j=0; while(s[i]!=0&&j<length) {  if(s[i]==t[j]){i++;j++;}  else{i=i-j+1;j=0;} } if(j==length)  return i-length; else  return -1;}        

    二:改进的模式匹配算法(KMP算法)

    最新回复(0)