BF算法.

BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
这个思路和代码 还是比较简单的 就是用子串的字符 一个一个的和 主串进行对比,如果对应的元素不同就 子串 参照位置 偏移 一个位置 ,即子串从主串下一个位置开始进行比较,直到匹配成功 - -
具体代码如下:

#include<stdio.h>
#include<string.h>
int bf( char *zhu ,char *zi)
{ 
	int i = 0 ;
	int temp=i;//定义一个中间变量temp 用于存放i的  每一次 最开始的位置

	int j = 0;
	int length= strlen(zhu);
	int length2=strlen(zi);
	while (i<length&&j<length2)
	{
	if (zhu[i]==zi[j])
	{
	i++;
	j++;
	}
	else
	{
    i=temp+1;//每次I 开始的位置+1 
	temp=i;//I赋值完后给temp 

	j=0;//j 从0开始 
	}
	}
	if(j==length2)
	{
	return i-j +1; //因为I-J就是下标偏移 啊,然后因为主串是从0开始的,所以加一才是正确的"位置" 而不是"下标 "

	}
	else 
	{return -1;
	}

}
int  main()
{
 char *zhu="daqabcdeqwfer";
 char *zi="abcd";
 printf("%s\n",zhu);
 printf("%s",zi);
 printf("\n主串在第: %d个字符开始 与子串匹配!!" ,bf(zhu,zi));
 return 0;


}

这期博客很水,可能是因为五一假期 …吧… 哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是牛大春呀

老板糊涂啊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值