Algoritmer og Datastrukturer 2 Gerth Stlting Brodal Suffiks
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Suffiks træer [GT, kapitel 9. 2], Suffiks arrays [Smyth, kapitel 5. 3. 2]
Trier (text retrieval) bear bell bid bull buy sell stock stop Fredkin 1960
Præfiks-fri ? k k a a kan katrine t r i n e n kan$ katrine$ $ t n r $ i n e $
Søgning i Streng Inverteret fil Ord a bear bell bid bull buy hear see sell stock stop the Position(er) 4, 28 6 78 47, 58 30 36 69 0, 24 12 17, 40, 51, 62 84 74 Trie
Komprimeret Trie Ukomprimeret trie
Komprimeret Trie over Ordbog (i, j, k) er delstrengen S[i][j. . k]
Suffiks Træer Weiner 1973 Suffix træ = komprimeret trie over suffixer Plads O(n) Kan konstrueres i O(n) tid (for konstant størrelse alfabet)
X
Suffiks Træ over to Strenge ABAB$0 BABA$1 $01 $01 $01 streng 1 : position 3 $01 længste strenge der forekommer i begge input strenge wikipedia. org
Suffiks Array 12345678 tekst = a b a a b Suffikser Sorterede suffikser 1 abaabaab 6 aab 2 baabaab 3 aabaab 7 ab 4 abaab 5 baab 1 abaabaab 6 aab 8 b 7 ab 5 baab 8 b 2 baabaab Suffix array σ 6 3 7 4 1 8 5 2
Algorithm SANaïve [Smyth, s. 151] 0 R-1 n+1
Algorithm SASimple [Smyth, s. 151] 0 R-1 n+1
SAComplex (PL ≥ PR) præberegnet PLM < PL : R←M, PR←PLM > PL : L←M PLM = PL : Start sammenligning på position PLM+1 Lad p være første forskellige position: u[p] < σ[M][p] : R←M, PR←p-1 u[p] > σ[M][p] : L←M, PL←p-1
Binært træ over intervaller Mihai Pătraşcu
Søgninger i et Suffiks Array n = tekst længde, m = mønster længde, k = antal forekomster
- Slides: 15