zoukankan      html  css  js  c++  java
  • 大话数据结构读后感(二)串

    5.2 串的定义

    5.3 串的比较 strcmp();

    5.6 朴素的模式匹配算法      //KMP模式匹配算法

      int  Index(String S , Sring T , int pos)

      {

        int  i=pos;

        int j=0;

        //int next[255];

        //get_next(T,next);//KMP算法得到next数组;

        while(i<S.size()&&j<=T.size())

        {

          if(S[i]==T[j])        //   ||   j==0;

          {

            ++i;

                ++j;

          }

          else

          {

            i=i-j+1; //i退回到上次匹配的首位的下一位;

            j=0;    //子串退回到T的首位;

            //j=next[j];  //j退回合适的位置,i不变;   KMP算法;

          }

        }

        if(j>T.size())

        {

          return i-T.size();

        }

        else

          return 0;

      } 

    next数组的推演;

      void  get_next(Sting T,int *next)

      {

        int i,j;

        i=1;

        j=0;

        next[1]=0;

        while(i<T.size())

        {

          if(j==0 || T[i]==T[j])

          {

            ++i;

            ++j;

            next[i]=j;

          }

          else

            j=next[j];            // j回溯;

        }

      }

    KMP算法的改进:

    void  get_nextval (Sting T,int *next)

      {

        int i,j;

        i=1;

        j=0;

        nextval[1]=0;

        while(i<T.size())

        {

          if(j==0 || T[i]==T[j])

          {

            ++i;

            ++j;

            //next[i]=j;

            if(T[i]!=T[j]) //若当前字符与前缀字符不同,则当前的j为nextval在i位置的值;

            {

              nextval[i]=j;

            }  

            else  

              nextval[i]=nextval[j];//如果与前缀字符相同则将前缀字符的nextval值赋值给nextval在i位置的值;

          }

          else

            j=nextval[j];            // j回溯;

        }

      }

  • 相关阅读:
    上班啦!
    用命令测试maven是否安装成功和创建maven java项目和maven javaweb 项目demo
    String部分
    将Linux虚拟机与本地主机组成局域网
    Maven部分
    JavaSe一个月一些笔记和感想
    Linux一些指令
    maven项目编译后没有生成target/class文件部分解决方案
    7、学习《细说PHP》笔记 七
    12、borderstyle样式边框风格属性
  • 原文地址:https://www.cnblogs.com/xcb-1024day/p/11349519.html
Copyright © 2011-2022 走看看