字符匹配BF算法

来源:互联网 发布:如何查看电脑mac地址 编辑:程序博客网 时间:2024/04/30 02:37
#include <stdio.h>#include <stdlib.h>#include <string.h>/***BF算法(Brute Force算法)属于朴素的模式匹配算法,它的核心思想:**-有两个字符串S和T,长度为N和M。首先s[1]和t[1]比较,若相等,则** 再比较s[2]和t[2],一直到T[M]为止;若S[1]和t[1]不等,则T向右移** 动一个字符的位置,再依次进行比较**-该算法最坏情况下要进行M*(N-M+1)次比较,时间复杂度为O(M*N)*/#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define MAXSTRLEN 100#define SRC_STR "I love Fishc"#define DST_STR "Fishc"typedef struct sequence_string{    char str[MAXSTRLEN];    int len;}sq_str;int brute_force(sq_str dst,sq_str src){    int i=0,j=0;    while(i<dst.len&&j<src.len)    {        if(*(dst.str+i)==*(src.str+j))        {            i++;            j++;        }        else        {            i=0;            j=j-i+1;        }    }    if(i==dst.len)            return j-dst.len;        else            return -1;}int main(){   int index=0;   sq_str src_str={        SRC_STR,        strlen(SRC_STR)   };   sq_str dst_str={       DST_STR,       strlen(DST_STR)   };    index=brute_force(dst_str,src_str);    printf("%d",index);    return 0;}

0 0
原创粉丝点击