Documente Academic
Documente Profesional
Documente Cultură
Cuza Iasi
Facultatea de Informatic
Nume:
Grupa:
daca aparitia cea mai din dreapta a lui C n p este k < j, p[k] si s[i] sunt
Algoritmul Boyer-Moore
aliniate
Regula
raudin dreapta a lui C n p este k > j, p este translatat la
2 dac
acaracterului
aparitia cea mai
dreapta cu o pozitie
Algoritmul
Boyer-Moore
revizuit
Evita repetarea comparat
iilor
fara succes
n cazul caracterelor care nu apar
D. Lucanu (FII - UAIC)
C
autare peste siruri
PA 2013/2014
b)
n
pattern
sau ntr-un sufix (maximal)
al acestuia.
8
Regula sufixului
bun
>
a C apare n pattern
<m pozitia ultimei aparitii , dac
salt[C ] = a lui C n pattern
>
:
m
, altfel
(alternativ, salt(C ) = max({0} [ {i < m | p[i] = C }))
A C D E N R T U
6 1 6 6 6 6 4 2 6
bm-bad-character-shift-rule.pptx
c)
revizuit
Daca p[j] 6= s[i]c
CAlgoritmul
,
Presupunem
a= p[j
1] Boyer-Moore
nu se potrive
ste (dupa ce s-au potrivit p[j..m 1].
1
a
aparit
ia
cea
mai
din
dreapta
a
lui
C n p este k < j, p[k] si s[i] sunt
1 dac
daca goodSu
> 0, face
Preprocesarea
n(j)cazul
2 un salt egal cu m goodSu (j) (cazul 1)
aliniate
2 dac
a goodSu
(j) =Boyer-Moore
0,dreapta
facerevizuit
un
salt egal cu m lp(j) (cazul 1)
2 dac
a aparitia cea
mai din
a lui C n p este k > j, p este translatat la
Algoritmul
pozit
ie potriveste, atunci j = m si saltul este corect.
Dacadreapta
p[m cu1]o nu
se
goodSu
- definit
ie p este aliniat cu s[i + 1..i + m] (saltul = j)
nu apare
n p, patternul
unde
daca C (j)
3
C
autare peste siruri
PA 2013/2014
lp(j) = lungimea celui mai lung prefix al lui p care este sufix al lui
p[j..m 1].
d)
Lema (j) = pozitia de sf
goodSu
arsit a unei aparitii a lui p[j..m
lp(j)precedat
= max{k
| 0 p[j
k 1]|p[j..m 1] ^ lcs(k, p) = k.
este
a de
D. Lucanu (FII - UAIC)
C
autare peste siruri
14 / 36
14 / 36
A
R
A
T
A
T
1] care nu
PA 2013/2014
1 2
3 4
34 / 36
dac
0
0
0
0
3
0
a nu
astfel de copie,
Exercit
iuexist
Sa aseodemonstreze
lema.goodSu (j) = 0
e)
0Rezult
goodSu
(j) < lp(j)
m 1;
goodSu
> 0 O(m).
atunci el reprezinta o
a ca valorile
potdac
fi acalculate
n (j)
timpul
daca
exista
nepotrivire
pe
pozitia
p[j],
mareste
k
(=
pozitia
de
inceput
al
lui
i
la
urmatoarea
iteratie)
cu
maximul
dintre
salturile
copie a unui sufix bun care permite un salt de m goodSu (j) pozitii
date
de
regula
caracterului
rau
si
regula
sufixului
bun.
deoarece p[m..m 1] este sirul vid, goodSu (m) = cea mai din dreapta
E
C A R A ...
pozitie k cu p[k] 6= p[m 1] ( 1 daca toate caracterele sunt egale).
A R A T A T
D. Lucanu
(FII - UAIC)
peste siruri
2013/2014
/ 36
se aplica
regula
caracterului rau,Cautare
se incrementeaza
pozitia iPAdin
text cu33salt[A]=1
(se aliniaza A) [1 comparatie]
C
A ...
A R A T A T
D. Lucanu (FII - UAIC)
utare peste siruri
36
se aplica
regula caracterului rau,Case
incrementeaza pozitia i PA
cu2013/2014
salt[R]=431 /(se
aliniaza R) (3 comparatii)
...
-1-
pas
2:
2
pas 3:
4
2
2
1
a
3
...
-2-
-3-
Ciorn
-4-