`
roc08
  • 浏览: 227979 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

算法学习1--BF(Brute-Force)算法

阅读更多
1.简介
  蛮力算法,比较简单的一种字符串匹配算法,在处理简单的数据时候就可以用,完全匹配,速度慢。
2.算法思想
   将模式字符串与目标字符串逐个字符进行比较,将模式字符串的第一个字符与目标字符串的第一个字符串比较,如果相等就比较模式字符串的第二个字符和目标字符串的第二个字符,相等继续比较下一个,不相等的话就用模式字符串的第一个字符与目标字符串的第二个字符比较,依次比较。直到目标字符串的最后一个字符比较结束。
   比如目标字符串为abcsadfcsafdsf,模式串为csaf,比较步骤如下:
    1. c与a比较,不匹配
    2. c与b比较,不匹配
    3. c与c比较,匹配;s与s比较,匹配;a与a比较,匹配;f与d比较,不匹配
    4. c与s比较,不匹配
    5. c与a比较,不匹配
    6. c与d比较,不匹配
    7. c与f比较,不匹配
    8. c与c比较,匹配; s与s比较,匹配; a与a比较,匹配; 与f比较,匹配 ------->成功
    9. c与d比较,不匹配
    10. c与s比较,不匹配
    11. c与f比较,不匹配------>结束
3.算法实现
    java代码
    

public class BFMain {
 
 private int match(String match,String target){
  char[] marArr = match.toCharArray();
  char[] tarArr = target.toCharArray();
  int i=0;
  int j=0;
  int index=-1;
  while(j<tarArr.length){
   if(marArr[i] == tarArr[j]){
    i++;
    j++;
   }else{
    j=j-i+1;
    i=0;
   }
   if(i==marArr.length){
    i=0;
    index = j-1;
    System.out.println(j-1);
   }
  }
  return index;
 }

 public static void main(String[] args) {
  BFMain m = new BFMain();
  m.match("csaf", "abcsadfcsafdsfcsaf");
  
  
 }
}

4.参考
http://www.cnblogs.com/coder2012/p/3279916.html
分享到:
评论

相关推荐

    java Brute-Force算法 BF算法 暴力匹配算法

    带简单图形界面的暴力匹配算法的java实现。

    C#,字符串匹配(模式搜索)BF(Brute Force)暴力算法的源代码

    字符串匹配算法(模式搜索 Pattern Search)的应用于包括但不...1、BF(Brute Force,暴力算法); 2、RK (Robin-Karp 算法); 3、KMP (D.E.Knuth、J.H.Morris、V.R.Pratt 算法); 4、哈希Hash与移动哈希算法;

    算法设计--串匹配问题:BF算法、KMP算法、BM算法.rar

    本资料主要探讨了三种经典的串匹配算法:BF算法(Brute Force,暴力搜索)、KMP算法(Knuth-Morris-Pratt)以及BM算法(Boyer-Moore)。接下来,我们将详细解析这三种算法的工作原理及其优缺点。 首先,BF算法是最...

    数据结果 kmp算法实验报告

    通过实验加深学生对串类型及其基本操作的理解,并重点掌握两种重要的模式匹配算法:Brute-Force算法和Knuth-Morris-Pratt(KMP)算法。实验旨在帮助学生: 1. **熟悉串类型的实现方法**:包括串的定义、表示方式以及...

    BF算法--串的朴素模式匹配算法

    BF 算法--串的朴素模式匹配算法 BF 算法(Brute Force 算法)是一种朴素的串模式匹配算法,用于在主串中查找子串的位置。该算法的时间复杂度为 O(n*m),其中 n 是主串的长度,m 是子串的长度。 BF 算法的主要思想是...

    串匹配-BF算法

    其中,BF算法(Boyer-Moore算法的一种简化版本,通常指的是Brute Force算法,即暴力匹配算法)是最基础也是最直观的字符串匹配算法之一。它通过逐个比较字符来实现目标子串(模式串)在源串(主串)中的查找。 ####...

    C语言:bf算法实现串匹配问题

    一、BF算法(Brute Force Algorithm) BF算法是串匹配问题的基本解决方案。该算法的思想是从主串的第一个字符开始,逐个比较主串和模式串的字符,如果发现不匹配,则从主串的下一个字符开始重新比较,直到找到匹配...

    BF算法和KMP算法

    BF 算法(Brute Force Algorithm)是一种简单的字符串匹配算法,其主要思想是将目标字符串与源字符串进行逐个比较,直到找到匹配的位置。其实现过程可以分为以下几个步骤: 1. 初始化两个指针 i 和 j,分别指向源...

    串匹配BM算法、KMP算法、BF算法.doc

    BF算法(Brute Force Algorithm)是串匹配算法中最简单的一种方法。它的思想是从主串S的第一个字符开始和模式T的第一个字符进行比较,如果相等,那么继续比较两者的后续字符;如果不相等,那么从主串S的第二个字符...

    从BF算法到KMP算法

    本主题将详细探讨两种常用的字符串匹配算法:BF算法(Brute Force Algorithm,暴力算法)和KMP算法(Knuth-Morris-Pratt Algorithm,库努斯-莫里斯-普拉特算法)。 ### 1. BF算法(暴力算法) BF算法是最直观的...

    模式匹配—BF算法和KMP算法

    本主题主要探讨两种经典的模式匹配算法:BF(Brute Force,暴力)算法和KMP(Knuth-Morris-Pratt)算法。 **BF算法**是最直观的解决方法,也被称为朴素匹配算法。它的基本思想是从主串的第一个字符开始,依次与模式...

    串匹配BF,BM算法 C++

    **BF(Brute Force)算法**是一种最基本的串匹配算法,其基本思想是从目标串(主串)的第一个字符开始,依次将模式串与目标串中的子串进行比较,直到找到一个完全匹配的子串或遍历完整个目标串。 ##### 1. BF算法原理...

    BF算法和KMP算法找子串.zip

    KMP算法是三位学者在 Brute-Force算法的基础上同时提出的模式匹配的改进算法。Brute- Force算法在模式串中有多个字符和主串中的若干个连续字符比较都相等,但最后一个字符比较不相等时,主串的比较位置需要回退。KMP...

    字符串处理- 单模式匹配- 朴素的字符串匹配算法(BF 算法).rar

    这里我们关注的是一个基础且重要的算法——朴素的字符串匹配算法,也称为BF算法(Brute Force 算法)。 BF算法由D.E.Knuth和J.H.Morris以及V.R.Pratt分别独立提出,因此也被称为KMP算法的前身。它的主要思想是通过...

    字符串的模式匹配详解--BF算法与KMP算法

    本文主要探讨两种经典的模式匹配算法:BF(Brute Force,暴力匹配)算法和KMP(Knuth-Morris-Pratt,克努斯-莫里斯-普拉特)算法。 **BF算法**是最基础的模式匹配方法,它的核心思想是对每一个可能的子串进行匹配...

    chuan-pi-pei.zip_bf

    这个压缩包可能包含了对几种不同字符串匹配算法的介绍,包括Brute Force算法、Boyer-Moore算法(BM算法)以及KMP算法。 **Brute Force算法**,也称为朴素匹配算法,是最基本的字符串匹配方法。它的主要思想是从文本...

    算法实验-串匹配问题-采用分治法求解最大连续子序列和问题-用分治策略求众数问题-最近点对问题

    - **BF算法**(Brute Force算法)是最简单的字符串匹配算法,它通过逐个字符比较目标串S和模式串T来寻找匹配。如果当前字符不匹配,模式串回溯到起始位置,目标串向前移动一位。这种方法效率较低,因为存在大量不必...

    BF、KMP与BM测试用数据

    **BF算法(Brute Force 算法)** BF算法,也称为朴素匹配算法,是最直观的字符串搜索方法。它通过从文本串的一个字符开始,逐个比较模式串和文本串,如果发现不匹配则向右移动文本串的一个字符再进行比较,直至找到...

    C++字符串匹配算法理解(从BF算法到KMP算法)

    暴风(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个...

    C++ 字符串匹配

    在这一篇文章中,我们将详细介绍 C++ 中的字符串匹配算法,主要包括 Brute Force 算法和其他一些常见的字符串匹配算法。 Brute Force 算法 Brute Force 算法是最简单的字符串匹配算法,它的思想是将模式串与主串...

Global site tag (gtag.js) - Google Analytics