字符串搜索匹配算法(一)

来源:互联网 发布:2016年进口粮食数据 编辑:程序博客网 时间:2024/05/16 15:03


字符串搜索匹配算法常用的有3种:BF算法、KMP算法、BM算法。

BF算法:

   BF(Brute Force)暴力搜索,是很容易想到的字符串匹配算法。对于要搜索的字符串T和模式P,T与P左对齐,先比较T[0]==P[0],相等的话,比较T[1]==P[1],如果全部字符都相同,则匹配成功;否则P往右移动1个字符,继续比较。时间复杂度O((n-m+1)*m)或者说O(mn)

   BF算法实现

      

#include <iostream>#include "conio.h"#define TNUM 20#define PNUM 5using namespace std;int main(){char T[TNUM];char P[PNUM];cout<<"请输入字符串"<<endl;cin>>T;cout<<"输入模式"<<endl;cin>>P;cout<<"在 "<<T<<" 中匹配"<<P<<endl;int i = 0;//T下标while(i<(strlen(T)-strlen(P))){        int j =0; //P下标    while(T[i++]==P[j++]&&j<strlen(P));if(j==strlen(P)){   cout<<"T中开始下标 ";for(int k=(i-strlen(P));k<i;k++)    cout<<"第"<<k<<"位置"<<T[k]<<" "; break;    }}getch();}
原创粉丝点击