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;
}
分享到:
相关推荐
13.Brute-Force算法与KMP算法.ppt
#资源达人分享计划#
带简单图形界面的暴力匹配算法的java实现。
KMP算法由D.E.Knuth,J.H.Morris和V.R.Pratt在 Brute-Force算法的基础上提出的模式匹配的改进算法。因此人们称它为“克努特—莫里斯—普拉特算法”,简称KMP算法。KMP算法的核心是利用匹配失败后的信息,尽量减少...
穷举算法,VC中的经典程序之一,适合初学者,
通过本课程的学习,学员可以掌握以下技术点:线性结构与顺序表、单向链表、循环链表、栈的基本概念、链式堆栈、中缀表达式、队列、链式队列、串、MyString、Brute-Force算法、MySet类实现、矩阵类、递归算法、哈夫曼...
通过本课程的学习,学员可以掌握以下技术点:线性结构与顺序表、单向链表、循环链表、栈的基本概念、链式堆栈、中缀表达式、队列、链式队列、串、MyString、Brute-Force算法、MySet类实现、矩阵类、递归算法、哈夫曼...
计算模型与算法技术:3-Brute Force.ppt
CS-5050-Assignment-2 使用蛮力,KMP和BM算法进行字符串搜索。
图)的各种算法的 Java 实现。 图构建算法: (多线程)蛮力:适用于任何相似性度量; (多线程)NN-Descent:适用于任何相似性度量; 在线图构建,如发表于; NNCTPH,如发表于 ,用于文本数据集; 实现的处理算法...
相同的示例适用于任何哈希算法,只需关闭哈希功能即可。 如果密码已加盐,则可以添加盐字符串以得到相同的结果。 如果没有盐串,仍然可能会蛮力,但是您将必须蛮力所有可能的盐串并为每个盐串运行此脚本。 运行 在...
串是由零个或多个字符组成的有限序列,又叫做字符串 串的逻辑结构和线性表很相似的,不同的是串针对是是字符集,所以在操作上与线性表还是有很大区别的。...Brute-Force算法的基本思想: 从目标串s 的
字符串匹配算法(模式搜索 Pattern Search)的应用于包括但不...1、BF(Brute Force,暴力算法); 2、RK (Robin-Karp 算法); 3、KMP (D.E.Knuth、J.H.Morris、V.R.Pratt 算法); 4、哈希Hash与移动哈希算法;
编程实现如下功能: 1、在实验六的基础上,实现串的Brute-Force模式匹配算法。 2、尝试实现串的KMP模式匹配算法。
however, brute-force path tracing techniques were simply too noisy and slow to be practical for movie production rendering. They therefore re- ceived little usage outside of academia, except perhaps ...
主要介绍了Java数据结构及算法实例:朴素字符匹配 Brute Force,本文直接给出实例代码,代码中包含详细注释,需要的朋友可以参考下
在数据结构模式匹配算法中,Brute-Force算法是一个重要的基础算法,但是在性能上远不及KMP算法。而理解KMP及其改进算法是一个复杂的问题,其关键是KMP函数的求解过程。通过特殊子串滑动算法与 KMP算法整合的实践,...