Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Java Program for Naive algorithm for Pattern Searching

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Given a text txt[0..n-1] and a pattern pat[0..m-1], write a function search(char pat[], char txt[]) that prints all occurrences of pat[] in txt[]. You may assume that n > m.

Examples:

Input:  txt[] = "THIS IS A TEST TEXT"
        pat[] = "TEST"
Output: Pattern found at index 10

Input:  txt[] =  "AABAACAADAABAABA"
        pat[] =  "AABA"
Output: Pattern found at index 0
        Pattern found at index 9
        Pattern found at index 12
pattern-searching

Pattern searching is an important problem in computer science. When we do search for a string in notepad/word file or browser or database, pattern searching algorithms are used to show the search results.

Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

Java




// Java program for Naive Pattern Searching
public class NaiveSearch {
 
    public static void search(String txt, String pat)
    {
        int M = pat.length();
        int N = txt.length();
 
        /* A loop to slide pat one by one */
        for (int i = 0; i <= N - M; i++) {
 
            int j;
 
            /* For current index i, check for pattern
              match */
            for (j = 0; j < M; j++)
                if (txt.charAt(i + j) != pat.charAt(j))
                    break;
 
            if (j == M) // if pat[0...M-1] = txt[i, i+1, ...i+M-1]
                System.out.println("Pattern found at index " + i);
        }
    }
 
    public static void main(String[] args)
    {
        String txt = "AABAACAADAABAAABAA";
        String pat = "AABA";
        search(txt, pat);
    }
}
// This code is contributed by Harikishore


Output:

Pattern found at index 0
Pattern found at index 9
Pattern found at index 13

Time Complexity: O(M * (N – M + 1)), where M and N represents the length of the given strings.
Auxiliary Space: O(1), no extra space is required, so it is a constant.

Please refer complete article on Naive algorithm for Pattern Searching for more details!


My Personal Notes arrow_drop_up
Last Updated : 28 May, 2022
Like Article
Save Article
Similar Reads