自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 BM算法

在字符串匹配算法中,KMP算法并不是效率最高的,这里将介绍的是BM算法。BM算法是指模式串与源文本串的比较从右到左,其本质是对后缀蛮力匹配算法的改进。该算法在最坏情况下的时间复杂度为O(N)。前提基础      了解什么是坏字符,什么是好后缀。坏字符:当源文本串中的某个字符跟模式串的某个字符不匹配时,称源文本串中的这个失配字符为坏字符。好后缀:源文本串与模式串具有的最长

2017-11-19 14:51:33 676

转载 从头到尾彻底理解KMP

优化KMP算法         对KMP算法已经有了认识, 下面让我们使用KMP算法,来了解KMP的匹配流程。       例子:源文本串S为 "abacababc",模式串P为 "abab"。       next数组表如下:              若当前程序已经匹配到如下所示的地方。根据next数组,能够判断下一次将进行s[3]与p[1]的比较,这一结果必然失败。为

2017-11-15 17:01:15 226

转载 理解KMP

初时KMP算法       KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。

2017-11-14 16:45:27 197

转载 暴力匹配算法

针对问题: 给定一个源文本串S,和一个模式匹配串P,需要查找P在S中第一次出现的下标位置。 若P在S中存在,则返回下标值;若P在S中不存在,则返回-1。算法思路: - 如果当前字符匹配成功,即 S[i]==P[j],则i++,j++,继续匹配下一个字符 - 如果当前字符匹配失败,即 S[i]!=p[j],则i回溯到i-(j-1),j被重置为0。代码://javaint

2017-11-12 17:28:41 519

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除