[数据结构]KMP算法

Posted .阿Q.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[数据结构]KMP算法相关的知识,希望对你有一定的参考价值。

1、暴力匹配(BF)算法

BF算法,即暴力 (Brute Force) 算法,是普通的模式匹配算法。

BF算法的思想就是将 子串S 的第1个字符与 主串T 的第1个字符进行匹配,若相等,则继续比较S的第2个字符和T的第2个字符;若不相等,则比较S的第1个字符和T的第二个字符。依次比较下去,直到得出最后的匹配结果。BF算法是一 种蛮力算法。

例子,详细解释:


#include<stdio.h>
#include<string.h>

/*
字符串匹配算法 BF
str:主串
sub:子串
返回值:返回子串在主串当中的下标。如果不存在,则返回-1
*/
int BF(char *str, char *sub)

	if (str == NULL || sub == NULL)
		return -1;
	
	int lenStr = strlen(str);
	int lenSub = strlen(sub);
	int i = 0;
	int j = 0;

	while (i < lenStr && j < lenSub)
	
		if (str[i] == sub[j])
		
			i++;
			j++;
		
		else
		
			i = i - j + 1;
			j

以上是关于[数据结构]KMP算法的主要内容,如果未能解决你的问题,请参考以下文章

数据结构KMP算法配图详解(超详细)

数据结构——KMP算法

学习数据结构笔记(18) --- [KMP算法]

《数据结构与算法》KMP算法01

KMP算法

数据结构--KMP算法总结