Open In App
Related Articles

PHP Program for Naive algorithm for Pattern Searching

Improve Article
Save Article
Like Article

Write a PHP program for a given text string with length n and a pattern with length m, the task is to print all occurrences of the pattern in text.
Note: You may assume that n > m.


Input:  text = “THIS IS A TEST TEXT”, pattern = “TEST”
Output: Pattern found at index 10

Input:  text =  “AABAACAADAABAABA”, pattern = “AABA”
Output: Pattern found at index 0, Pattern found at index 9, Pattern found at index 12

PHP Program for Naive Pattern Searching algorithm:

Slide the pattern over text one by one and check for a match. If a match is found, then slide by 1 again to check for subsequent matches.


// PHP program for Naive Pattern
// Searching algorithm
function search($pat, $txt)
    $M = strlen($pat);
    $N = strlen($txt);
    // A loop to slide pat[]
    // one by one
    for ($i = 0; $i <= $N - $M; $i++)
        // For current index i,
        // check for pattern match
        for ($j = 0; $j < $M; $j++)
            if ($txt[$i + $j] != $pat[$j])
        // if pat[0...M-1] =
        // txt[i, i+1, ...i+M-1]
        if ($j == $M)
            echo "Pattern found at index ", $i."\n";
    // Driver Code
    $pat = "AABA";
    search($pat, $txt);
// This code is contributed by Sam007


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

Time Complexity: O(N2)
Auxiliary Space: O(1)

Complexity Analysis of Naive algorithm for Pattern Searching:

Best Case: O(n)

  • When the pattern is found at the very beginning of the text (or very early on).
  • The algorithm will perform a constant number of comparisons, typically on the order of O(n) comparisons, where n is the length of the pattern.

Worst Case: O(n2)

  • When the pattern doesn’t appear in the text at all or appears only at the very end.
  • The algorithm will perform O((n-m+1)*m) comparisons, where n is the length of the text and m is the length of the pattern.
  • In the worst case, for each position in the text, the algorithm may need to compare the entire pattern against the text.
  • Naive algorithm for Pattern Searching

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

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 25 Oct, 2023
Like Article
Save Article
Similar Reads