"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > PHP Program for Rabin-Karp Algorithm for Pattern Searching

PHP Program for Rabin-Karp Algorithm for Pattern Searching

Published on 2024-09-02
Browse:140

PHP Program for Rabin-Karp Algorithm for Pattern Searching

What is Rabin-Karp Algorithm?

The Rabin-Karp algorithm is a string pattern matching algorithm that efficiently searches for occurrences of a pattern within a larger text. It was developed by Michael O. Rabin and Richard M. Karp in 1987.

The algorithm utilizes a hashing technique to compare the hash values of the pattern and substrings of the text. It works as follows:

  • Calculate the hash value of the pattern and the first window of the text.

  • Slide the pattern over the text one position at a time and compare the hash values.

  • If the hash values match, compare the characters of the pattern and the current window of the text to confirm the match.

  • If there is a match, record the position/index of the match.

  • Calculate the hash value for the next window of the text using a rolling hash function.

  • Repeat steps 3 to 5 until all positions of the text have been checked.

The rolling hash function efficiently updates the hash value for each new window by subtracting the contribution of the first character in the previous window and adding the contribution of the next character in the new window. This helps avoid recalculating the hash value from scratch for each window, making the algorithm more efficient.

PHP Program for Rabin-Karp Algorithm for Pattern Searching

";
      }

      // Calculate the hash value for the next window of text
      if ($i 

Output

Pattern found at index 1 
Pattern found at index 4
Pattern found at index 7
Pattern found at index 10
Pattern found at index 13

Explanation of code

The PHP code implements the Rabin-Karp algorithm for pattern searching. It takes a pattern and a text as inputs and searches for occurrences of the pattern within the text. The algorithm calculates the hash values for the pattern and the first window of the text. It then slides the pattern over the text, comparing the hash values of the current window and the pattern. If the hash values match, it further verifies the characters one by one. If a match is found, it prints the index where the pattern is found. The algorithm uses a rolling hash function to efficiently update the hash value for each window. The code demonstrates the usage of the algorithm by searching for the pattern "BC" in the text "ABCABCABCABCABC".

Conclusion

In conclusion, The PHP program effectively implements the Rabin-Karp algorithm for pattern searching. By utilizing a rolling hash function and comparing hash values, the algorithm efficiently searches for occurrences of a pattern within a larger text. The program correctly identifies the indices where the pattern is found in the text and outputs the results. With a clear structure and appropriate hash calculations, the program demonstrates the functionality and usefulness of the Rabin-Karp algorithm for pattern searching in PHP.

Release Statement This article is reproduced at: https://www.tutorialspoint.com/php-program-for-rabin-karp-algorithm-for-pattern-searching. If there is any infringement, please contact [email protected] to delete it.
Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3