Click here to Skip to main content
15,036,737 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
I am trying to understand Knuth–Morris-Pratt or KMP algorithm for text searching. But I find it very difficult to understand especially the time complexity. If you guys are aware of some easy to understand tutorial, please help me out. Thanks.

What I have tried:

Multiple resources including wiki & few of the youtube videos.
Posted
Updated 19-Jul-21 6:34am

Well, there's a problem with your question.

What is easy for someone else to understand may not be easy for YOU to understand. So there's really no answer to your question other than YOU going through Google and reading source after source until you find one YOU can understand.
   
Quote:
I am trying to understand Knuth–Morris-Pratt or KMP algorithm for text searching.

The algorithm is mostly a black box to you, get sample code and use the debugger to open that box, you will see how the code deals with an input.

There is an almost universal solution: Run your code on debugger step by step, inspect variables.
The debugger is here to show you what your code is doing and your task is to compare with what it should do.
There is no magic in the debugger, it don't know what your code is supposed to do, it don't find bugs, it just help you to by showing you what is going on. When the code don't do what is expected, you are close to a bug.
To see what your code is doing: Just set a breakpoint and see your code performing, the debugger allow you to execute lines 1 by 1 and to inspect variables as it execute.

Debugger - Wikipedia, the free encyclopedia[^]

Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[^]
Basic Debugging with Visual Studio 2010 - YouTube[^]

The debugger is here to only show you what your code is doing and your task is to compare with what it should do.
   
There are several articles out there. But as Dave mentioned, you need to go through one by one & see what works for you. Anyways, I think KMP Algorithm Explained In Plain English[^] can help you out. It doesn't have technical jargons & use multiple examples to clarify things especially time complexity of KMP search. It can be a good starting point for beginners.
   

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900