精华内容
下载资源
问答
  • 串的模式匹配算法

    2021-01-13 19:43:47
    串的模式匹配算法串的模式匹配算法朴素匹配 串的模式匹配算法 朴素匹配 这里采用C语言编写,使用串的定长存储,定义如下: // 顺序串的最大串长 #define MAX_STR_LEN 255 // 0号单元存放串的长度 typedef ...

    串的模式匹配算法

    串的模式匹配算法

    朴素匹配

    这里采用C语言编写,使用串的定长存储,定义如下:

    
    // 顺序串的最大串长
    #define MAX_STR_LEN 255       
    
    // 0号单元存放串的长度
    typedef unsigned char SString[MAX_STR_LEN + 1];      
     
    

    基本思想:从主串的第pos个字符开始,和模式串的第一个字符依次比较,若相同,则往后逐个比较模式串后续字符。若不等,则从珠串的下一个字符开始从头和模式串的字符相匹配。时间复杂度:最好情况下是O(n+m);最坏时间复杂度为O(n*m),在匹配01串的时候往往效率会比较低。

    算法实现如下:

    
    int Index(SString  S,SString T,int post=1) {
        int i =post;
        int j =1;
        while (i<=S[0]&&j<=T[0]){
            if (S[i]==T[j]){
                i++;
                j++;
            } else{
                i = i-j+2;
                j=1;
            }
        }
        if (j>T[0]) return i-T[0]+1;
        return 0;
    }
    
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,680
精华内容 3,072
关键字:

串的模式匹配算法