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

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

在这里插入图片描述

相关内容

热门资讯

一分钟了解"aapo... 一分钟了解"aapokerai辅助"aapoker辅助工具ai(本来有挂)-哔哩哔哩1、aapoke...
一起来探讨"aapo... 一起来探讨"aapoker辅助工具ai"aapoker辅助使用教程(都是有挂)-哔哩哔哩1、aapo...
查到实测辅助"aa ... 查到实测辅助"aa poker有外挂吗"aapoker有内部好嘛(都是存在有挂)-哔哩哔哩该软件可以...
揭秘攻略"aapok... 揭秘攻略"aapokerai辅助"aapoker透明挂下载(原来真的有挂)-哔哩哔哩;1、不需要AI...
一分钟了解"aapo... 一分钟了解"aapoker发牌机制"aapoker辅助是什么(好像真的有挂)-哔哩哔哩aapoker...
科技通报"aa po... 科技通报"aa poker有外挂吗"aapoker辅助器是真的吗(切实真的有挂)-哔哩哔哩1、完成a...
玩家必备教程"aap... 玩家必备教程"aapoker辅助工具ai"aapoker透视辅助(真是有挂)-哔哩哔哩aapoker...
揭秘几款"aapok... 揭秘几款"aapoker辅助工具ai"aapoker外挂购买(原来存在有挂)-哔哩哔哩1、这是跨平台...
实测教程"aapok... 实测教程"aapoker发牌机制"AApoker透明挂(原来有挂)-哔哩哔哩一、aapoker发牌机...
1.9分钟了解"aa... 1.9分钟了解"aapoker辅助工具ai"aapoker有外挂吗(都是是有挂)-哔哩哔哩1、aap...