当前位置: 首页 > news >正文

6. 数据结构—串的匹配算法

1.简单匹配算法(暴力算法)

//模式匹配(暴力算法) 
int Index(SString S,SString T){int i=1,j=1;while(i<=S.length&&j<=T.length){if(S[i]==T[i]){i++;j++;}else{i=i-j+2;  //最开始匹配的位置的后一个j=1;      //从头匹配	}}if(j>T.length)return i-T.length;return return 0; 
}

时间复杂度分析:

假设主串长度为n,待匹配的串长度为m,则最坏时间复杂度为O(nm)

主串最多需要匹配n-m+1次,每次最多匹配m次(匹配到最后一个发现不匹配了),

所以也就是(n-m+1)*m=nm-m^2+m,因为一般都是n>>m,所以后面的-m^2+m可以省略,也就是O(nm)的时间复杂度。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringBoot教程(二十二) | SpringBoot实现分布式定时任务之elastic-job
  • PMP到底有什么用?
  • C++的模板简介
  • JVM 类加载机制
  • Git的使用-初级
  • OJ-0819
  • C连接MySQL常用API
  • 【数据结构初阶】二叉树--基本概念
  • “解决Windows电脑无法投影到其他屏幕的问题:尝试更新驱动程序或更换视频卡“
  • Java--多线程(上)
  • 【OCPP】ocpp1.6协议第5.12章节Remote Stop Transaction的介绍及翻译
  • 这9个VXLAN术语还不精通?别干网工了
  • Ciallo~(∠・ω・ )⌒☆第二十一篇 入门re 正则表达式
  • 【设计模式】漫谈设计模式
  • 端点安全新纪元:EDR与XDR技术的融合应用
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《深入 React 技术栈》
  • 【EOS】Cleos基础
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • ECMAScript6(0):ES6简明参考手册
  • javascript从右向左截取指定位数字符的3种方法
  • JavaScript服务器推送技术之 WebSocket
  • jquery cookie
  • JS字符串转数字方法总结
  • JWT究竟是什么呢?
  • laravel with 查询列表限制条数
  • Nacos系列:Nacos的Java SDK使用
  • vuex 笔记整理
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 分布式熔断降级平台aegis
  • 关于springcloud Gateway中的限流
  • 今年的LC3大会没了?
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 入门级的git使用指北
  • 小程序开发中的那些坑
  • 栈实现走出迷宫(C++)
  • 自动记录MySQL慢查询快照脚本
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 如何在招聘中考核.NET架构师
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #define,static,const,三种常量的区别
  • $ git push -u origin master 推送到远程库出错
  • (1)Hilt的基本概念和使用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (void) (_x == _y)的作用
  • (zhuan) 一些RL的文献(及笔记)
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (杂交版)植物大战僵尸