`
heisedeyueya
  • 浏览: 97731 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Brute-Force算法

阅读更多

Brute-Force算法

Brute-Force算法简称BF算法:也称简单匹配算法,其基本思路是:从目标串s=”s0s1…sn-1”的第一个字符开始和模式串t=”t0t1…tm-1”中的第一个字符比较,若相等,则继续逐个比较后续字符,否则,从目标串s的第2个字符开始重新与模式串t的第一个字符进行比较,依次类推,若从模式串s的第i个字符开始,每个字符依次和目标串t中的对应字符相等,则匹配成功,该算法返回i;否则匹配失败,返回-1.

private static int bruteforce(String source, String sub) {
		int j = 0, i = 0;
		int index = -1;
		while (i < source.length() && j < sub.length()) {
			if (source.charAt(i) == sub.charAt(j)) {
				i++;
				j++;
			} else {
//使i回退到下一个字符,应为子串的前面j向可能匹配成功,而第j+1项失败,所以i=i-j+1
				i = i - j + 1;
				j = 0;
			}
			if (j == sub.length()) {
				index = i - sub.length();
			} else {
				index = -1;
			}
		}
		return index;
	}
3
0
分享到:
评论

相关推荐

    数据结构Brute-Force算法的实现.pdf

    基于给定的信息,我将聚焦于标题“数据结构Brute-Force算法的实现.pdf”来构建相关知识点。 ### Brute-Force算法概述 Brute-Force(暴力搜索)算法,又称为穷举法或暴力法,是一种简单直观的算法思想。它尝试所有...

    13.Brute-Force算法与KMP算法.ppt

    13.Brute-Force算法与KMP算法.ppt

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

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

    brute-force

    1. **源代码**:可能有各种编程语言实现的brute-force算法,如Python、C++或Java,用于解决具体问题,如密码破解、数学问题等。 2. **测试数据**:包含各种输入数据,用于验证brute-force算法的正确性和效率。 3. **...

    数据结构-串实验报告.docx

    - Brute-Force算法:逐个字符比较主串和模式串,如果遇到不匹配的情况,主串回溯到下一个位置重新开始匹配,直到找到匹配或者整个主串遍历完。 - KMP算法:通过构造部分匹配表(Next数组)来避免不必要的回溯,...

    数据结果 kmp算法实验报告

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

    C#,字符串匹配(模式搜索)KMP算法的源代码与数据可视化

    KMP算法由D.E.Knuth,J.H.Morris和V.R.Pratt在 Brute-Force算法的基础上提出的模式匹配的改进算法。因此人们称它为“克努特—莫里斯—普拉特算法”,简称KMP算法。KMP算法的核心是利用匹配失败后的信息,尽量减少...

    Brute-force-algorithm.rar_Brute Force Search_brute force_brutef

    穷举算法,VC中的经典程序之一,适合初学者,

    KMP算法是一种改进的字符串匹配算法.docx

    在Brute-Force算法中,当模式串中有多个字符和主串中的若干个连续字符比较都相等,但最后一个字符比较不相等时,主串的比较位置需要回退。而KMP算法通过利用匹配失败后的信息,尽量减少模式串与主串的匹配次数,以...

    实战应用Java算法分析与设计-1算计概述与抽象数据类型

    通过本课程的学习,学员可以掌握以下技术点:线性结构与顺序表、单向链表、循环链表、栈的基本概念、链式堆栈、中缀表达式、队列、链式队列、串、MyString、Brute-Force算法、MySet类实现、矩阵类、递归算法、哈夫曼...

    brute-force-convex-hull

    标题“brute-force-convex-hull”指向的是一个与计算几何相关的话题,具体来说是关于求解凸包的一种算法——暴力求解法。在计算几何中,凸包是一组点集中的最小边界,该边界将所有点包含在内且是凸的。这个话题可能...

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

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

    一些字符串匹配算法,目前只包括KMP算法.zip

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

    实战应用Java算法分析与设计-3图的概念以及图的邻接矩阵类实现

    通过本课程的学习,学员可以掌握以下技术点:线性结构与顺序表、单向链表、循环链表、栈的基本概念、链式堆栈、中缀表达式、队列、链式队列、串、MyString、Brute-Force算法、MySet类实现、矩阵类、递归算法、哈夫曼...

    Python实现kmp算法.zip

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

    基于KMP算法实现的敏感信息检测.zip

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

    数据结构串的操作实验报告.pdf

    在本实验报告中,重点讨论了串的各种操作,包括序次储存结构下的字符串操作和模式匹配算法,如Brute-Force算法和KMP算法。 实验的目的在于使学生熟悉串的不同实现方式,理解C语言中字符和字符串处理的原理,并掌握...

    数据结构Java第复习PPT学习教案.pptx

    Brute-Force算法简单直观,但效率较低,最坏情况下时间复杂度为O(nm),其中n是主串长度,m是模式串长度。KMP算法通过预处理得到next数组,提高了匹配效率,避免了不必要的字符比较,最坏情况下的时间复杂度仍为O(nm)...

    漫话数据结构-DNA里的秘密.pptx

    6. **算法优化**:尽管Brute-Force算法简单,但在实际生物信息学应用中,可能会采用更高效的算法,如KMP算法或Boyer-Moore算法,以减少不必要的字符比较,提高搜索效率。 7. **程序实现**:最后,我们需要将这些...

Global site tag (gtag.js) - Google Analytics