暴力搜索算法过程,用模式串P去和目标串T比较,如果对应字符匹配成功,两两后移一位,如果匹配不成功,模式串从T的下一个字符开始匹配,重复上述执行过程
/**暴力搜索算法,使用STL*/
#include<string>
#include<iostream>
using namespace std;//记得要写命名空间std,不然用不了string
int i=0,j=0;
int bruteForce(string a,string b){
i=0;
int m=a.length();//目标串
int n=b.length();//模式串
while(i<m-n){
j=0;
while(a[i]==b[j]&&j<n){//匹配过程
i++;
j++;
}
if(j==n){//匹配成功
return i-n;//返回匹配成功处的index
}
i=i-j+1;//下一次匹配开始处
}
return -1;
}
int main(int argc,char * argv[]){
char *a ="ajshdjfhf";
char *b ="djf";
int result=bruteForce(a,b);
cout<<result<<endl;
string aa=a;
string bb=b;
int result2=bruteForce(aa,bb);
cout<<result2<<endl;
return 0;
}