字符串匹配算法之___Sunday算法的java实现

本文介绍了Daniel M. Sunday提出的Sunday算法,一种高效的字符串匹配算法。相较于KMP和BM算法,Sunday算法更易理解且通常速度更快。通过一个示例解释了算法的基本思想,展示了如何在Java中实现该算法,并提供了匹配过程的详细步骤。
摘要由CSDN通过智能技术生成

Sunday算法的java实现

  • Sunnday算法简介

  • 一个示例

  • java实现


Sunday算法简介

Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。其核心思想是:在匹配过程中,模式串发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率。 —— [ 百度百科 ]

相比于另外几个著名的字符串匹配算法,KMP以及BM算法而言,Sunday算法不仅理解起来比较容易,而且往往能有更好的速度。上面的描述可能太过于抽象,下面介绍一个简单的例子,来理解一下Sunday算法的基本思想。

一个示例

考虑被匹配字符串abcdebcdb,匹配字符串bcde

这里记被匹配字符串的位置为i,匹配字符串的位置为j

第一步,将两个字符串首对齐:

abcdebcdb
bcde

发现a与b不匹配,随后考虑i+匹配字符串长度的位置上的字符串是

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值