Add Rabin.

This commit is contained in:
Oleksii Trekhleb
2018-04-24 21:36:47 +03:00
parent d126b23c3c
commit f9a8c881cc
2 changed files with 26 additions and 2 deletions

View File

@@ -0,0 +1,24 @@
# Rabin Karp Algorithm
In computer science, the RabinKarp algorithm or KarpRabin algorithm
is a string searching algorithm created by Richard M. Karp and
Michael O. Rabin (1987) that uses hashing to find any one of a set
of pattern strings in a text.
## Complexity
For text of length `n` and `p` patterns
of combined length `m`, its average and best case running time is
`O(n + m)` in space `O(p)`, but its worst-case time is `O(n * m)`.
## Application
A practical application of the algorithm is detecting plagiarism.
Given source material, the algorithm can rapidly search through a paper
for instances of sentences from the source material, ignoring details
such as case and punctuation. Because of the abundance of the sought
strings, single-string searching algorithms are impractical.
## References
[Wikipedia](https://en.wikipedia.org/wiki/Rabin%E2%80%93Karp_algorithm)