朴素模式匹配算法与KMP算法(非重点)
创始人
2025-01-09 02:30:40
0

目录

  • 一. 朴素模式匹配算法
    • 1.1 什么是字符串的匹配模式
    • 1.2 朴素模式匹配算法
    • 1.3 通过数组下标实现朴素模式匹配算法
  • 二. KMP算法
    • 2.1 算法分析
    • 2.2 用代码实现(只会出现在选择题,考察代码的概率不大)
  • 三. 手算next数组
  • 四. KMP算法的进一步优化
    • 4.1 优化分析
    • 4.2 手算nextval数组

\quad

一. 朴素模式匹配算法

\quad

\quad

1.1 什么是字符串的匹配模式

\quad

在这里插入图片描述
\quad
在这里插入图片描述

\quad

1.2 朴素模式匹配算法

\quad
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

\quad

1.3 通过数组下标实现朴素模式匹配算法

\quad

在这里插入图片描述
在这里插入图片描述

鄙人所写

int Indexps(SString* a, SString* b) //朴素模式匹配算法 { 	int i = 1, j = 1; 	for (int k = 0; i < a->length - b->length + 1; k++) 	{ 		while(j<=b->length) 		{ 			if (a->ch[i] != b->ch[j]) 			{ 				break; 			} 			i++; 			j++; 		}  		if (j > b->length) 		{ 			return i - b->length; 		}  		i = i - j + 2; 		j = 1;   		if (i >= a->length - a->length + 2) 		{ 			return 0; 		}   	} } 

优化
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

\quad

二. KMP算法

\quad

\quad

2.1 算法分析

\quad

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
\quad
\quad
\quad
第二种情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据上面的经验,i不变,变的是j,而j是未知, 我们不妨先把j指向0
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

\quad

2.2 用代码实现(只会出现在选择题,考察代码的概率不大)

\quad
先不管next数组如何实现, 会手动算就行

在这里插入图片描述
在这里插入图片描述

\quad

三. 手算next数组

\quad

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

\quad
\quad

使用next数组进行模式匹配
在这里插入图片描述
在这里插入图片描述
练习题
在这里插入图片描述

\quad

四. KMP算法的进一步优化

\quad

\quad

4.1 优化分析

\quad

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

\quad
\quad
\quad
\quad
在这里插入图片描述
在这里插入图片描述
\quad
\quad
不是所有的next数组的值都可以被优化
在这里插入图片描述
\quad

在这里插入图片描述

\quad

4.2 手算nextval数组

\quad

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

相关内容

热门资讯

第五分钟了解!闲来游戏辅助器脚... 第五分钟了解!闲来游戏辅助器脚本,aapoker透视可以用,安装教程(本然真的有挂);1、超多福利:...
第四分钟透视“智星德州插件可以... 第四分钟透视“智星德州插件可以下载”德州圈脚本(详细开挂透视辅助技巧)1、下载好智星德州插件可以下载...
科技新动态!同城乐吧乐享版51... 科技新动态!同城乐吧乐享版510k辅助(辅助挂)线上教程(细节作弊开挂辅助安装);同城乐吧乐享版51...
第十次性普及“传送屋激k如何开... 第十次性普及“传送屋激k如何开启透视”解谜作弊开挂辅助app(切实真的有挂);大家肯定在之前传送屋激...
一分钟了解!闲来辅助工具,hh... 一分钟了解!闲来辅助工具,hhpoker作弊实战视频,曝光教程(竟然是真的有挂);1、点击下载安装,...
第四分钟透视“红龙poker辅... 第四分钟透视“红龙poker辅助器免费观看”pokerrrr2辅助(新版开挂透视辅助教程)1、下载好...
玩家必用!玄龙辅助工具(辅助挂... 玩家必用!玄龙辅助工具(辅助挂)教你攻略(安装作弊开挂辅助安装);1、点击下载安装,玄龙辅助工具插件...
第6次性普及“新超凡辅助器”解... 第6次性普及“新超凡辅助器”解密作弊开挂辅助插件(原生是真的有挂);新超凡辅助器最新软件透明挂直接下...
4分钟了解!心悦游戏透视辅助器... 4分钟了解!心悦游戏透视辅助器,哈糖大菠萝可以挂,实用技巧(竟然真的有挂)是一款可以让一直输的玩家,...
第9分钟透视“aapoker透... 第9分钟透视“aapoker透视可以用”wepoker智能辅助插件(分享开挂透视辅助插件)1、wep...