BF(Brute Force)算法

BF算法(蛮力算法),属于一种比较简单的字符串匹配算法,在处理简单的数据时候可以用这种算法,完全匹配,缺点是速度慢。

1.BF算法原理

        从目标串s 的第一个字符起和模式串t 的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从串s 的第二个字符起重新和串t 进行比较。依次类推,直至串t 中的每个字符依次和串s 的一个连续的字符序列相等,则称模式匹配成功,此时串t的第一个字符在串s 中的位置就是t 在s 中的位置,否则模式匹配不成功。

2. BF算法查找时间复杂度

       假设串s 的长度为n,串t 的长度为m ,最好的情况比较次数为n-m+1,最坏的情况是比较次数为(n-m+1)*m,因为一般情况下n 远大于m,故最坏情况下BF算法时间复杂性为O(n*m)。

2.BF算法实现

#include
#include
using namespace std;

//BF算法 
int BFindex(char *s,char *t)
{
	int n,m,i,j;
	n=strlen(s);
	m=strlen(t);
	for(i=0;i


你可能感兴趣的:(数据结构,C/C++学习)