BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
代码如下:

#include<stdio.h>
#include<stdlib.h>
int BF(char S[],char T[]){int i=0;int j=0;while(S[i]!='\0'&&T[j]!='\0'){ //循环条件:两个数组都未使用完 if(S[i]==T[j]){//相等时 i和j都指向下一个字符 i++;j++;}else{//不等时,j指向0,i指向i-j+1 i=i-j+1;j=0;}}if(T[j]=='\0'){//当j指向空时表示在S中找到了和T一样的字符串 return (i-j);//返回相同字符串在S中的位置 }else{//没有找到 return -1;}
}
int main()
{int k;char s[100],t[100];printf("请输入主串\n") ;gets(s);printf("请输入模型串\n");gets(t);//调用BF算法k=BF(s,t);if(k==-1){printf("主串中未找到与模型串匹配的子串\n");}else{printf("在主串第%d个字符后找到与模型串匹配的子串\n",k);}return 0;
}

若有不足或更好的建议欢迎下方评论区留言!

BF(暴力)算法详解相关推荐

  1. BF与KMP算法详解

    日升时奋斗,日落时自省 目录 一.BF暴力算法 二.KMP算法 1.next数组 2.next数组优化(nextval) 一.BF暴力算法 暴力算法是普通的模式匹配算法 针对一个主串和一个子串,子串是 ...

  2. KMP算法详解及各种应用

    KMP算法详解: KMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字.其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题 ...

  3. 回溯算法详解之全排列、N皇后问题

    回溯算法详解 回溯算法框架.解决一个回溯问题,实际上就是一个决策树的遍历过程.你只需要思考 3 个问题: 1.路径:也就是已经做出的选择. 2.选择列表:也就是你当前可以做的选择. 3.结束条件:也就 ...

  4. KMP算法详解P3375 【模板】KMP字符串匹配题解

    KMP算法详解: KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt(雾)提出的. 对于字符串匹配问题(such as 问你在abababb中有多少个 ...

  5. 20200118:(leetcode)最长回文子串(中心扩展算法详解及思考)

    最长回文子串(中心扩展算法详解及思考) 题目 中心扩展算法详解 代码实现 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: " ...

  6. SIFT特征点提取及描述论文算法详解

    SIFT特征点提取及描述论文算法详解 1. 尺度空间极值检测(Scale-space extrema detection) 1.1 尺度空间和极值 1.2 DoG和LoG的关系 1.3 构建高斯尺度差 ...

  7. 【机器学习】集成学习及算法详解

    集成学习及算法详解 前言 一.随机森林算法原理 二.随机森林的优势与特征重要性指标 1.随机森林的优势 2.特征重要性指标 三.提升算法概述 四.堆叠模型简述 五.硬投票和软投票 1.概念介绍 2.硬 ...

  8. KNN算法详解及实现

    KNN算法详解及实现 k近邻法(k-nearest neighbor,k-NN)是一种基本的分类和回归方法,是监督学习方法里的一种常用方法.k近邻算法假设给定一个训练数据集,其中的实例类别已定.分类时 ...

  9. 【20210922】【机器/深度学习】KNN (K近邻) 算法详解

    一.算法概念 KNN, K-near neighbor,即最近邻算法.它是一种分类算法,算法思想是:一个样本与数据集中的 k 个样本最相似,如果这 k 个样本中的大多数属于某一个类别,则该样本也属于这 ...

最新文章

  1. 因遭领导批评,90后女生上班当天便辞职还删了公司后台数据,结果……她被判刑了...
  2. 24小时临时邮箱_免费临时邮箱和接码平台
  3. 电商等大型网站高可用,高负载架构借鉴方案(转载)
  4. 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused
  5. 消费级GPU、速度提升3000倍,微软FastNeRF实现200FPS
  6. sae java 开发环境_新浪开放平台 sae环境 java主机使用感受
  7. java 异常返回json_Spring MVC全局异常后返回JSON异常数据
  8. Pytorch1.7.1与SimpleITK2.0.0在centos7上终端运行冲突的情况
  9. spring boot2 整合(三)JOOQ工具
  10. MyApplicationToast工具类
  11. 21天学通JAVA:类的定义和对象的创建
  12. 斐讯e1刷集客_斐讯无线AP2543CD 1750M AP 无拆刷Breed集客AP固件
  13. 基于JAVA的KTV交易_Java写的KTV管理系统(Swing界面,含源码)
  14. 上传新文件项目到svn上
  15. java中ant_java ant使用详解
  16. 不是美工,如何使用ps快速更换图标icon的颜色?
  17. 计算机专业就业方向总结(选择也许更重要)
  18. 玩转Luat 进阶篇③——远程升级实现过程详解
  19. facebook女程序员_Facebook正在悄悄地向其独立的事实检查员施加压力,要求他们改变裁决
  20. 十大iOS体育游戏评点

热门文章

  1. 实现类似微信聊天功能的mysql表设计
  2. 原创 | 假期必读:一文看尽2019-2020各大顶会GNN论文(附链接)
  3. 【虚幻引擎UE】场景中物体闪烁抖动摩尔纹问题集合
  4. 搭建游戏要选什么样的服务器?
  5. Nand Flash控制器
  6. iphone开源汇总
  7. Win10设置系统补丁更新服务器,win10如何关闭自动更新补丁_win10关闭自动更新补丁的图文教程...
  8. 数值分析(12):Rung-Kutta法及单步法的收敛性和稳定性分析
  9. 固态硬盘(SSD) 和机 械硬盘(HDD) 优缺点比較
  10. 华为matex搭载鸿蒙系统,华为 MateX 推迟至 9 月上市,或预装鸿蒙系统