天天看點

暴力搜尋算法

暴力搜尋算法

暴力搜尋算法過程,用模式串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;
} 
           

繼續閱讀