Курсовая работа: Порівняльний аналіз ефективності та складності алгоритмів пошуку елементів у масивах
Var T : array[1..40000] of char;
S : array[1..10000] of char;
i,j : longint;
n,m : longint;
v,w : longint;
k : longint;
const P : longint = 7919; {1000-е простое число}
D : longint = 256; { кількість різних символів ( кількість різних символів типу char)}
Begin
{ Ввід тексту і зразка}
…
v:=0;
w:=0;
for i:=1 to m do { обчислення v і w}
begin
v:=(v*D+ord(S[i])) mod P; {ord повернення коду символа}
w:=(w*D+ord(T[i])) mod P;
end;
k:=1;
for i:=1 to m-1 do
k:=k*D mod P; {k має значення Dm-1 mod P}
for i:=m+1 to n+1 do
begin
if w=v then { якщо числа рівні, то рядки належать одному класу, і потрібно перевірити, чи вони рівні}
begin
j:=0;
while (j<m) and (S[j+1]=T[i-m+j]) do
j:=j+1;
if j=m then { кінцева перевірка}