From 48e22d2aff9a6c8da0db48c5072e98c80f40b70c Mon Sep 17 00:00:00 2001 From: dwijaxo <77172078+dwijaxo@users.noreply.github.com> Date: Fri, 15 Oct 2021 22:51:49 +0530 Subject: [PATCH] Create rabinkarp.cpp --- rabinkarp.cpp | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 rabinkarp.cpp diff --git a/rabinkarp.cpp b/rabinkarp.cpp new file mode 100644 index 0000000..47557ac --- /dev/null +++ b/rabinkarp.cpp @@ -0,0 +1,66 @@ +#include +#include +using namespace std; + +#define d 256 + +void search(char pat[], char txt[], int q) +{ + int M = strlen(pat); + int N = strlen(txt); + int i, j; + int p = 0; + int t = 0; + int h = 1; + + for (i = 0; i < M - 1; i++) + h = (h * d) % q; + + for (i = 0; i < M; i++) + { + p = (d * p + pat[i]) % q; + t = (d * t + txt[i]) % q; + } + + for (i = 0; i <= N - M; i++) + { + if ( p == t ) + { + bool flag = true; + + for (j = 0; j < M; j++) + { + if (txt[i+j] != pat[j]) + { + flag = false; + break; + } + } + + if (j == M) + cout<<"Pattern found at index "<< i<