java数据结构之字符串的模式匹配算法
来源:互联网 发布:o2olr软件下载 编辑:程序博客网 时间:2024/05/21 08:57
java中String提供了很多的字符串处理方法其中就包括子串的匹配。
今天就来介绍一下字符串中的子串的匹配算法。分为两种:一种为朴素的模式匹配算法(简称BF算法),改进的模式匹配算法(简称KMP算法)。
下面首先来介绍一下BF算法的中心思想:
这是一种带有回溯的匹配算法,简称BF算法。实现过程是从主串S的第一个字符开始和模式T的第一个字符开始比较,若相等则继续比较二者后续的的字符;否则从主串的第二个字符开始和模式T的第一个字符进行比较,重复上述过程,直至S或者T中所有的字符比较完毕。
BF算法实现():
package string;public class StringModel {public int BF(char S[],char T[]){//BF字符串匹配算法int i=0,j=0;while(i!=(S.length-1) && j!=(T.length-1)){if(S[i]==T[j]){i++;j++;}else{i=i-j+1;j=0;}}if(j==(T.length-1)){return i-j+1;}else{return 0;}}public static void main(String[] args) {StringModel s=new StringModel();char[] S={'a','a','b','d','f','g','d','w'};char[] T={'a','b','d','f'};System.out.println(s.BF(S, T));}}最好的情况下的时间复杂度为O(m+n),最坏的情况下的时间复杂度为O(m*n);
KMP的算法时间复杂度为O(m+n)。具体实现留在下一篇博客中。
如果有什么不清楚或者有啥疑问意见可以加我QQ/微信 208017534 / qiang220316,欢迎一起交流一起进步。
0 0
- java数据结构之字符串的模式匹配算法
- 数据结构 字符串模式匹配之KMP算法
- 数据结构 字符串模式匹配之BF算法
- 数据结构之字符串的模式匹配
- 数据结构.字符串.模式匹配算法
- 大话数据结构十:字符串的模式匹配(BF算法)
- 大话数据结构十一:字符串的模式匹配(KMP算法)
- 大话数据结构十二:字符串的模式匹配(BM算法)
- 大话数据结构十:字符串的模式匹配(BF算法)
- 大话数据结构十一:字符串的模式匹配(KMP算法)
- 数据结构面试之十四——字符串的模式匹配
- 数据结构之串的KMP模式匹配算法的实现
- 软件设计师教程 数据结构之朴素的模式匹配算法
- 数据结构之模式匹配KMP算法的next数组求解
- 数据结构之串的模式匹配算法(KMP)
- 数据结构与算法之KMP 字符串匹配
- 字符串匹配算法 之 基于DFA(确定性有限自动机)的字符串模式匹配算法
- 字符串匹配算法 之 基于DFA(确定性有限自动机)的字符串模式匹配算法
- 27. Remove Element
- 简单的android数据类和Json转换(Data Json)
- xml 和 Java Annotation 的优缺点对比
- 踩坑事件:windows操作系统下的eclipse中编写SparkSQL不能从本地读取或者保存parquet文件
- #55 – Application.ShutdownMode
- java数据结构之字符串的模式匹配算法
- 增删改同时获取主键id
- SAS OUTPUT语句
- c++重载运算符梳理
- 反转单向链表
- javascript之模板引擎
- PDO 简介——预处理语句和存储过程
- windows svn搭建a
- win32汇编 多线程编程与事件