朴素模式匹配算法与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

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

在这里插入图片描述

相关内容

热门资讯

第二分钟妙计!悟空大厅辅助助手... 悟空大厅辅助助手下载安装是一款专注玩家量身打造的游戏记牌类型软件,在悟空大厅辅助助手下载安装这款游戏...
第三分钟积累!天酷游戏交易平台... 第三分钟积累!天酷游戏交易平台,随意玩辅助器下载,德州教程(其实有挂) >>您好:软件加薇13670...
1分钟方针!微乐江西小程序辅助... 1分钟方针!微乐江西小程序辅助,新漫游正版辅助软件,分享教程(果然真的是有挂);无需打开直接搜索打开...
第7分钟秘籍!乐胡摆叫脚本,欢... 第7分钟秘籍!乐胡摆叫脚本,欢聚水鱼智能辅助教程,解密教程(原来真的有挂);无需打开直接搜索加(薇:...
第5分钟机巧!蛮王辅助器,wp... 第5分钟机巧!蛮王辅助器,wpk私人辅助,微扑克教程(果然是有挂的);打开点击测试直接进入微信(13...
7分钟模板!欢乐贰柒拾辅助,菠... 欢乐贰柒拾辅助是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微信...
第4分钟指引!同城游抓狗腿辅助... >>您好:同城游抓狗腿辅助确实是有挂的,很多玩家在这款同城游抓狗腿辅助游戏中打牌都会发现很多用户的牌...
一分钟手筋!未来云南辅助,四川... 一分钟手筋!未来云南辅助,四川家园辅助软件,2026新版教程!(原来真的是有挂)您好:四川家园辅助软...
七分钟机巧!小闲巴渝辅助,微信... 您好:微信小程序微乐辅助器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...
3分钟妙计!新道游辅助器透视挂... 您好:这款新道游辅助器透视挂游戏是可以开挂的,确实是有挂的,很多玩家在这款新道游辅助器透视挂游戏中打...