-
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://skyofcai.blogbus.com/logs/37931646.html
简称BF算法。很好记忆的。
该方法的优点是:算法简单明朗,便于实现记忆。
缺点是:进行了回溯,效率不高,而这些都是没有必要的。
该方法非常简单,函数声明为: int bfLocate (const char* s, const char* t);
s为目标串,t为模式串。该方法的主导思想是在s串中顺序搜索定位t串。
C语言实现代码如下:
(声明: 该代码经过测试,但不能排除一切bug。任何人使用且发现bug并造成的一切损失,将由使用本代码者承担全部责任,而本作者不承担任何责任。该代码仅供学习交流。若能将bug报告给本作者,在下会感激不尽。)
int bfLocate(const char *s, const char *t)
{
int i, j; //i指s, j指t
int s_len, t_len;
i = j = 0;
s_len = strlen(s);
t_len = strlen(t);
while (i < s_len && j < t_len)
{
if (s[i] == t[j])
{
i++;
j++;
}
else
{
i = i - j + 1; //指针回溯到s串中的上一次匹配的首字符的下一个相邻的字符
j = 0;
}
}//while
if (j >= t_len)
return (i-j);
return -1;
}//bfLocate
随机文章:
KMP算法研究 2009-05-08李春葆《数据结构教程》上机实验题4.***编码实现 2009-04-16开幕式演唱《歌唱祖国》的可爱女孩——林妙可 2008-08-11考研英语复习方略 2007-11-02何必劳神苦思? 2006-10-17
收藏到:Del.icio.us
评论