您的位置:首页 > 其它

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

2011-11-22 20:17 253 查看
字符串搜索匹配算法常用的有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 5
using 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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐