![Page 1: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/1.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Delo z nizi
Matevz Jekovec
Univerza v LjubljaniFakulteta za racunalnistvo in informatiko
Poletna sola 2014 — Programiranje v visji prestavi
![Page 2: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/2.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Notacija
I S — vhodni niz znakov ali besedilo (ang. string)
I N — dolzina niza (stevilo znakov)
I Σ — abeceda
I σ — velikost abecede
I Primer:I S = “BANANA′′
I N1= 6I Σ = {B,A,N}I σ = 3
1Pozor: Dejanska velikost niza v pomnilniku je lahko drugacna(null-delimited nizi, razlicna kodiranja znakov)
![Page 3: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/3.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Notacija
I S — vhodni niz znakov ali besedilo (ang. string)
I N — dolzina niza (stevilo znakov)
I Σ — abeceda
I σ — velikost abecedeI Primer:
I S = “BANANA′′
I N1= 6I Σ = {B,A,N}I σ = 3
1Pozor: Dejanska velikost niza v pomnilniku je lahko drugacna(null-delimited nizi, razlicna kodiranja znakov)
![Page 4: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/4.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Oblike besedil:
I Strukturirana: Besedilo je sestavljeno iz vec besed.Obicajno tudi iscemo po besedah. (programska koda,anglescina, slovenscina)
I Nestrukturirana: Besedilo nima jasnih besed ali pa je velikobesed sestavljank. (nemscina, cloveski genom, glasba)
Problemi pri strukturiranih besedilih:
I Ali se beseda P (ang. pattern) nahaja v besedilu?
I Kje in kolikokrat se beseda ponovi?
I Ali se katera koli beseda zacne na P? Ali je P koren katerekoli besede? Ali je P pripona katere koli besede?
Problemi pri nestrukturiranih besedilih:
I Ali se vzorec P pojavi v besedilu?
I Kje in kolikokrat se vzorec pojavi?
![Page 5: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/5.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Oblike besedil:
I Strukturirana: Besedilo je sestavljeno iz vec besed.Obicajno tudi iscemo po besedah. (programska koda,anglescina, slovenscina)
I Nestrukturirana: Besedilo nima jasnih besed ali pa je velikobesed sestavljank. (nemscina, cloveski genom, glasba)
Problemi pri strukturiranih besedilih:
I Ali se beseda P (ang. pattern) nahaja v besedilu?
I Kje in kolikokrat se beseda ponovi?
I Ali se katera koli beseda zacne na P? Ali je P koren katerekoli besede? Ali je P pripona katere koli besede?
Problemi pri nestrukturiranih besedilih:
I Ali se vzorec P pojavi v besedilu?
I Kje in kolikokrat se vzorec pojavi?
![Page 6: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/6.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Oblike besedil:
I Strukturirana: Besedilo je sestavljeno iz vec besed.Obicajno tudi iscemo po besedah. (programska koda,anglescina, slovenscina)
I Nestrukturirana: Besedilo nima jasnih besed ali pa je velikobesed sestavljank. (nemscina, cloveski genom, glasba)
Problemi pri strukturiranih besedilih:
I Ali se beseda P (ang. pattern) nahaja v besedilu?
I Kje in kolikokrat se beseda ponovi?
I Ali se katera koli beseda zacne na P? Ali je P koren katerekoli besede? Ali je P pripona katere koli besede?
Problemi pri nestrukturiranih besedilih:
I Ali se vzorec P pojavi v besedilu?
I Kje in kolikokrat se vzorec pojavi?
![Page 7: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/7.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Kako iskati
Kako iscemo?
Odvisno od scenarija!
I Besedilo ves cas isto, vzorci se menjajo.
I Vzorec ves cas isti, besedilo se menja.
Ideja: V prvem primeru najprej indeksiramo besedilo, kar trajanekaj casa, vendar bo iskanje po kazalu (in ne neposredno pobesedilu) potem bistveno hitreje. V drugem primeru porabimonekaj casa, da spravimo vzorec v obliko, s katero bi hitrejeiskali po besedilu.
![Page 8: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/8.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Kako iskati
Kako iscemo? Odvisno od scenarija!
I Besedilo ves cas isto, vzorci se menjajo.
I Vzorec ves cas isti, besedilo se menja.
Ideja: V prvem primeru najprej indeksiramo besedilo, kar trajanekaj casa, vendar bo iskanje po kazalu (in ne neposredno pobesedilu) potem bistveno hitreje. V drugem primeru porabimonekaj casa, da spravimo vzorec v obliko, s katero bi hitrejeiskali po besedilu.
![Page 9: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/9.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Kako iskati
Kako iscemo? Odvisno od scenarija!
I Besedilo ves cas isto, vzorci se menjajo.
I Vzorec ves cas isti, besedilo se menja.
Ideja: V prvem primeru najprej indeksiramo besedilo, kar trajanekaj casa, vendar bo iskanje po kazalu (in ne neposredno pobesedilu) potem bistveno hitreje. V drugem primeru porabimonekaj casa, da spravimo vzorec v obliko, s katero bi hitrejeiskali po besedilu.
![Page 10: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/10.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Kako iskati
Kako iscemo? Odvisno od scenarija!
I Besedilo ves cas isto, vzorci se menjajo.
I Vzorec ves cas isti, besedilo se menja.
Ideja: V prvem primeru najprej indeksiramo besedilo, kar trajanekaj casa, vendar bo iskanje po kazalu (in ne neposredno pobesedilu) potem bistveno hitreje. V drugem primeru porabimonekaj casa, da spravimo vzorec v obliko, s katero bi hitrejeiskali po besedilu.
![Page 11: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/11.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Hranjenje besedila
Kako shraniti strukturirano besedilo tako, da bomo lahko hitroiskali po njem?
Ideja: Slovar, ki preslika iskan kljuc na mesta pojavitev kljuca vbesedilu. Kaj tocno uporabiti?
I Dvojisko iskalno drevo
I Zgoscevalna tabela
I Stevilsko drevo
![Page 12: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/12.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Hranjenje besedila
Kako shraniti strukturirano besedilo tako, da bomo lahko hitroiskali po njem?Ideja: Slovar, ki preslika iskan kljuc na mesta pojavitev kljuca vbesedilu. Kaj tocno uporabiti?
I Dvojisko iskalno drevo
I Zgoscevalna tabela
I Stevilsko drevo
![Page 13: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/13.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Hranjenje besedila
Kako shraniti strukturirano besedilo tako, da bomo lahko hitroiskali po njem?Ideja: Slovar, ki preslika iskan kljuc na mesta pojavitev kljuca vbesedilu. Kaj tocno uporabiti?
I Dvojisko iskalno drevo
I Zgoscevalna tabela
I Stevilsko drevo
![Page 14: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/14.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Hranjenje besedila
Kako shraniti strukturirano besedilo tako, da bomo lahko hitroiskali po njem?Ideja: Slovar, ki preslika iskan kljuc na mesta pojavitev kljuca vbesedilu. Kaj tocno uporabiti?
I Dvojisko iskalno drevo
I Zgoscevalna tabela
I Stevilsko drevo
![Page 15: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/15.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Hranjenje besedila
Kako shraniti strukturirano besedilo tako, da bomo lahko hitroiskali po njem?Ideja: Slovar, ki preslika iskan kljuc na mesta pojavitev kljuca vbesedilu. Kaj tocno uporabiti?
I Dvojisko iskalno drevo
I Zgoscevalna tabela
I Stevilsko drevo
![Page 16: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/16.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Dvojisko iskalno drevo (ang. Binary search tree)
Ideja: Iskalno drevo, vozlisca hranijo nize, manjsi niz je tisti, kije po abecedi (leksikografsko) pred drugim.
ura
ključ vrednostavtouraurarurnikpespesem
523014
2
3
0
1
4
avto5
urar
urnik
pes
pesem
Pozor: Ce imamo nize ze zlozene v tabelo po abecedi, potemnamesto iskanja po drevesu iscemo kar po tabeli — bisekcija!
![Page 17: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/17.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Dvojisko iskalno drevo (ang. Binary search tree)
Ideja: Iskalno drevo, vozlisca hranijo nize, manjsi niz je tisti, kije po abecedi (leksikografsko) pred drugim.
ura
ključ vrednostavtouraurarurnikpespesem
523014
2
3
0
1
4
avto5
urar
urnik
pes
pesem
Pozor: Ce imamo nize ze zlozene v tabelo po abecedi, potemnamesto iskanja po drevesu iscemo kar po tabeli — bisekcija!
![Page 18: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/18.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Dvojisko iskalno drevo (ang. Binary search tree)
Ideja: Iskalno drevo, vozlisca hranijo nize, manjsi niz je tisti, kije po abecedi (leksikografsko) pred drugim.
ura
ključ vrednostavtouraurarurnikpespesem
523014
2
3
0
1
4
avto5
urar
urnik
pes
pesem
Pozor: Ce imamo nize ze zlozene v tabelo po abecedi, potemnamesto iskanja po drevesu iscemo kar po tabeli — bisekcija!
![Page 19: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/19.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Dvojisko iskalno drevo (ang. Binary search tree)
Ideja: Iskalno drevo, vozlisca hranijo nize, manjsi niz je tisti, kije po abecedi (leksikografsko) pred drugim.
ura
ključ vrednostavtouraurarurnikpespesem
523014
2
3
0
1
4
avto5
urar
urnik
pes
pesem
Pozor: Ce imamo nize ze zlozene v tabelo po abecedi, potemnamesto iskanja po drevesu iscemo kar po tabeli — bisekcija!
![Page 20: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/20.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Zgoscevalna tabela (ang. Hash table)
Zgosceno vrednost izracunamo za vsako besedo v vhodnembesedilu. Nato vstavimo besedo kot obicajni element (npr.stevilo) v zgoscevalno tabelo.
Rabin-Karpova zgoscevalna funkcija:
H = c1ak−1 + c2ak−2 + ...+ cka0
Primer zgoscene vrednosti za a = 2: URAR, dolzina je k = 4U je 20. crka, R je 17. crka, A pa 0. crka po abecedi:
20 · 23 + 17 · 22 + 0 · 21 + 17 · 20 = 160 + 68 + 17 = 245
Pozor: Ce zelimo hraniti vec pojavitev niza, potrebujemomultimap.
![Page 21: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/21.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Zgoscevalna tabela (ang. Hash table)
Zgosceno vrednost izracunamo za vsako besedo v vhodnembesedilu. Nato vstavimo besedo kot obicajni element (npr.stevilo) v zgoscevalno tabelo.Rabin-Karpova zgoscevalna funkcija:
H = c1ak−1 + c2ak−2 + ...+ cka0
Primer zgoscene vrednosti za a = 2: URAR, dolzina je k = 4U je 20. crka, R je 17. crka, A pa 0. crka po abecedi:
20 · 23 + 17 · 22 + 0 · 21 + 17 · 20 = 160 + 68 + 17 = 245
Pozor: Ce zelimo hraniti vec pojavitev niza, potrebujemomultimap.
![Page 22: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/22.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Zgoscevalna tabela (ang. Hash table)
Zgosceno vrednost izracunamo za vsako besedo v vhodnembesedilu. Nato vstavimo besedo kot obicajni element (npr.stevilo) v zgoscevalno tabelo.Rabin-Karpova zgoscevalna funkcija:
H = c1ak−1 + c2ak−2 + ...+ cka0
Primer zgoscene vrednosti za a = 2: URAR, dolzina je k = 4U je 20. crka, R je 17. crka, A pa 0. crka po abecedi:
20 · 23 + 17 · 22 + 0 · 21 + 17 · 20 = 160 + 68 + 17 = 245
Pozor: Ce zelimo hraniti vec pojavitev niza, potrebujemomultimap.
![Page 23: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/23.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Zgoscevalna tabela nadal. (ang. Hash table)
Vzemimo velikost polja M = 8.
![Page 24: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/24.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Zgoscevalna tabela nadal. (ang. Hash table)
Vzemimo velikost polja M = 8.
H(“avto”) = 136 mod 8 = 0
H(“ura”) = 114 mod 8 = 2
H(“urar”) = 245 mod 8 = 5
H(“urnik”) = 534 mod 8 = 6
H(“pes”) = 86 mod 8 = 0
H(“pesem”) = 364 mod 8 = 0
![Page 25: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/25.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Zgoscevalna tabela nadal. (ang. Hash table)
Vzemimo velikost polja M = 8.01234567 3urar
5avto
2ura
0urnik
1pes 4pesem
ključ vrednostavtouraurarurnikpespesem
523014
![Page 26: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/26.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Stevilsko drevo (ang. trie)
Problem iskalnih dreves in zgoscevalne tabele: Ni mogoce iskatipo zacetkih besed (npr. search-as-you-type).
Resitev: Stevilsko drevo hrani besede od korena navzdol,razbite po crkah.
u
r
a n
ir
p
e
s
k
ključ vrednostavtouraurarurnikpespesem
523014
2
3
0
1
m 4
e
a
v
t
o5
![Page 27: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/27.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Stevilsko drevo (ang. trie)
Problem iskalnih dreves in zgoscevalne tabele: Ni mogoce iskatipo zacetkih besed (npr. search-as-you-type).Resitev: Stevilsko drevo hrani besede od korena navzdol,razbite po crkah.
u
r
a n
ir
p
e
s
k
ključ vrednostavtouraurarurnikpespesem
523014
2
3
0
1
m 4
e
a
v
t
o5
![Page 28: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/28.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Stisnjeno stevilsko drevo (ang. compressed trie)
Izboljsava: Namesto svojega vozlisca za vsako crko, vozlisca zenim naslednikom zdruzimo.
a
ključ vrednostavtouraurarurnikpespesem
523014
2
3
0
1
4
avto5 ur
r
nik
pes
em
![Page 29: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/29.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Stisnjeno stevilsko drevo (ang. compressed trie)
Izboljsava: Namesto svojega vozlisca za vsako crko, vozlisca zenim naslednikom zdruzimo.
a
ključ vrednostavtouraurarurnikpespesem
523014
2
3
0
1
4
avto5 ur
r
nik
pes
em
![Page 30: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/30.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves
Kako predstaviti vozlisce?
1 class TrieNode {
2 string str;
3 void *value;
4 ? children;
5 };
Do otrok dostopamo prek:
I povezanega seznama,
I polje kazalcev v velikosti abecede σ,
I trojiskega iskalnega drevesa,
![Page 31: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/31.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves
Kako predstaviti vozlisce?
1 class TrieNode {
2 string str;
3 void *value;
4 ? children;
5 };
Do otrok dostopamo prek:
I povezanega seznama,
I polje kazalcev v velikosti abecede σ,
I trojiskega iskalnega drevesa,
![Page 32: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/32.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves
Kako predstaviti vozlisce?
1 class TrieNode {
2 string str;
3 void *value;
4 ? children;
5 };
Do otrok dostopamo prek:
I povezanega seznama,
I polje kazalcev v velikosti abecede σ,
I trojiskega iskalnega drevesa,
![Page 33: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/33.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves
Kako predstaviti vozlisce?
1 class TrieNode {
2 string str;
3 void *value;
4 ? children;
5 };
Do otrok dostopamo prek:
I povezanega seznama,
I polje kazalcev v velikosti abecede σ,
I trojiskega iskalnega drevesa,
![Page 34: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/34.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves — povezan seznam
Vozlisce ima kazalec na prvega otroka in na sorojenca.
1 class TrieNode {
2 string str;
3 void *value;
4 TrieNode *child;
5 TrieNode *sibling;
6 };
ključ vrednostACAGCATC
14512 siblingchildA C T
C G A C1 4 5 12
![Page 35: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/35.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves — povezan seznam
Vozlisce ima kazalec na prvega otroka in na sorojenca.
1 class TrieNode {
2 string str;
3 void *value;
4 TrieNode *child;
5 TrieNode *sibling;
6 };
ključ vrednostACAGCATC
14512 siblingchildA C T
C G A C1 4 5 12
![Page 36: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/36.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves — s poljem
Vsako vozlisce vsebuje polje σ kazalcev na otroke. Do otrokadostopamo neposredno z indeksom njegove crke.
1 class TrieNode {
2 string str;
3 void *value;
4 TrieNode children[ALPHABET ];
5 };
A C G T
ključ vrednostACAGCATC
14512
A C T
C G A C1 4 5 12
![Page 37: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/37.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves — s poljem
Vsako vozlisce vsebuje polje σ kazalcev na otroke. Do otrokadostopamo neposredno z indeksom njegove crke.
1 class TrieNode {
2 string str;
3 void *value;
4 TrieNode children[ALPHABET ];
5 };
A C G T
ključ vrednostACAGCATC
14512
A C T
C G A C1 4 5 12
![Page 38: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/38.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves — TST
Trojisko iskalno drevo (ang. Ternary Search Trie) je kompromisobeh prejsnjih metod: hranimo le kazalce na otroke, kiobstajajo, iskanje pa poteka z bisekcijo.
1 class TrieNode {
2 string str;
3 void *value;
4 TrieNode *eq;
5 TrieNode *ls;
6 TrieNode *gt;
7 };
ključ vrednostACAGCATC
14512
gtls CT
A
A
C CG
eq
14
5 12
![Page 39: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/39.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Programiranje stevilskih dreves — TST
Trojisko iskalno drevo (ang. Ternary Search Trie) je kompromisobeh prejsnjih metod: hranimo le kazalce na otroke, kiobstajajo, iskanje pa poteka z bisekcijo.
1 class TrieNode {
2 string str;
3 void *value;
4 TrieNode *eq;
5 TrieNode *ls;
6 TrieNode *gt;
7 };
ključ vrednostACAGCATC
14512
gtls CT
A
A
C CG
eq
14
5 12
![Page 40: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/40.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Priponsko drevo (ang. Suffix tree)
Stevilsko drevo omogoca iskanje po zacetkih besed. Kaj pa pokorenu ali priponi?
Priponsko drevo je stisnjeno stevilsko drevo, ki hrani vsepredpone besedila (ali besed).
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
12
$
A B RA
7
D A B RA $
5
KA D A B RA $ RA
11
$ B RA
6
D A B RA $
4
KA D A B RA $
8
$
1
KA D A B RA $
9
$
2
KA D A B RA $
10
$
3
KA D A B RA $
1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
![Page 41: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/41.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Priponsko drevo (ang. Suffix tree)
Stevilsko drevo omogoca iskanje po zacetkih besed. Kaj pa pokorenu ali priponi?Priponsko drevo je stisnjeno stevilsko drevo, ki hrani vsepredpone besedila (ali besed).
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
12
$
A B RA
7
D A B RA $
5
KA D A B RA $ RA
11
$ B RA
6
D A B RA $
4
KA D A B RA $
8
$
1
KA D A B RA $
9
$
2
KA D A B RA $
10
$
3
KA D A B RA $
1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
![Page 42: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/42.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Priponsko drevo (ang. Suffix tree)
Stevilsko drevo omogoca iskanje po zacetkih besed. Kaj pa pokorenu ali priponi?Priponsko drevo je stisnjeno stevilsko drevo, ki hrani vsepredpone besedila (ali besed).
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
12
$
A B RA
7
D A B RA $
5
KA D A B RA $ RA
11
$ B RA
6
D A B RA $
4
KA D A B RA $
8
$
1
KA D A B RA $
9
$
2
KA D A B RA $
10
$
3
KA D A B RA $
1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
![Page 43: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/43.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Priponsko drevo (ang. Suffix tree)
Stevilsko drevo omogoca iskanje po zacetkih besed. Kaj pa pokorenu ali priponi?Priponsko drevo je stisnjeno stevilsko drevo, ki hrani vsepredpone besedila (ali besed).
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
12
$
A B RA
7
D A B RA $
5
KA D A B RA $ RA
11
$ B RA
6
D A B RA $
4
KA D A B RA $
8
$
1
KA D A B RA $
9
$
2
KA D A B RA $
10
$
3
KA D A B RA $
1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
![Page 44: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/44.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Priponsko drevo (ang. Suffix tree)
Stevilsko drevo omogoca iskanje po zacetkih besed. Kaj pa pokorenu ali priponi?Priponsko drevo je stisnjeno stevilsko drevo, ki hrani vsepredpone besedila (ali besed).
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
1 2 3 4 5 6 7 8 9 10 11 12S=ABRAKADABRA$
12
$
A B RA
7
D A B RA $
5
KA D A B RA $ RA
11
$ B RA
6
D A B RA $
4
KA D A B RA $
8
$
1
KA D A B RA $
9
$
2
KA D A B RA $
10
$
3
KA D A B RA $
1 $2 A$3 ABRA$4 ABRAKADABRA$5 ADABRA$6 AKADABRA$7 BRA$8 BRAKADABRA$9 DABRA$10 KADABRA11 RA$12 RAKADABRA$
1211816492751013
![Page 45: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/45.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 46: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/46.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P:
BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 47: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/47.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 48: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/48.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: BANANA
NA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 49: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/49.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: BANANA
NA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 50: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/50.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: BANANA
NA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 51: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/51.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: BANANA
NA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 52: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/52.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: BANANA
NA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 53: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/53.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: BANANA
NA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 54: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/54.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: BANANA
NA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P: BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 55: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/55.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 56: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/56.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?
Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 57: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/57.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Iskanje z drsecim oknom (ang. sliding window)
BANANANA DREVESU RASTEJO BANANE.S:P:
Vaja: Koliko casa potrebujemo?Vsaj N primerjav znakov, ce se vedno ze prvi znak okna neujema in NM/2, ce je vsak M-ti znak besedila zgresitev. npr.S =AAABAAABAAABAAAB in P =AAAA.
![Page 58: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/58.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem
Imejmo S =AAABAAABAAABAAAB in P =AAAA iz prejsnjegaprimera.
Prva zgresitev se pojavi, ko je okno na poziciji i = 0 in znakuj = 3, ce stejemo od 0 dalje.Ideja: Namesto, da premaknemo okno za 1 znak naprej, gapremaknemo za 4 znake naprej, saj znaka B sploh nimamo vvzorcu!Algoritem: Zgradimo tabelo, ki hrani stevilo znakov, ki jihlahko preskocimo glede na trenutni znak besedila. Primera:
I Vzorec AAAA: vedno lahko preskocimo kar vse 4 znake, cese pojavi kateri koli znak 6=A na vhodu.
I Vzorec ABAB: ce se pojavi B na vhodu in pricakujemo A,potem preskocimo le en znak. Isto velja obratno. Ce je navhodu kateri koli drug znak, preskocimo 4 znake.
![Page 59: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/59.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem
Imejmo S =AAABAAABAAABAAAB in P =AAAA iz prejsnjegaprimera.Prva zgresitev se pojavi, ko je okno na poziciji i = 0 in znakuj = 3, ce stejemo od 0 dalje.
Ideja: Namesto, da premaknemo okno za 1 znak naprej, gapremaknemo za 4 znake naprej, saj znaka B sploh nimamo vvzorcu!Algoritem: Zgradimo tabelo, ki hrani stevilo znakov, ki jihlahko preskocimo glede na trenutni znak besedila. Primera:
I Vzorec AAAA: vedno lahko preskocimo kar vse 4 znake, cese pojavi kateri koli znak 6=A na vhodu.
I Vzorec ABAB: ce se pojavi B na vhodu in pricakujemo A,potem preskocimo le en znak. Isto velja obratno. Ce je navhodu kateri koli drug znak, preskocimo 4 znake.
![Page 60: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/60.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem
Imejmo S =AAABAAABAAABAAAB in P =AAAA iz prejsnjegaprimera.Prva zgresitev se pojavi, ko je okno na poziciji i = 0 in znakuj = 3, ce stejemo od 0 dalje.Ideja: Namesto, da premaknemo okno za 1 znak naprej, gapremaknemo za 4 znake naprej, saj znaka B sploh nimamo vvzorcu!
Algoritem: Zgradimo tabelo, ki hrani stevilo znakov, ki jihlahko preskocimo glede na trenutni znak besedila. Primera:
I Vzorec AAAA: vedno lahko preskocimo kar vse 4 znake, cese pojavi kateri koli znak 6=A na vhodu.
I Vzorec ABAB: ce se pojavi B na vhodu in pricakujemo A,potem preskocimo le en znak. Isto velja obratno. Ce je navhodu kateri koli drug znak, preskocimo 4 znake.
![Page 61: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/61.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem
Imejmo S =AAABAAABAAABAAAB in P =AAAA iz prejsnjegaprimera.Prva zgresitev se pojavi, ko je okno na poziciji i = 0 in znakuj = 3, ce stejemo od 0 dalje.Ideja: Namesto, da premaknemo okno za 1 znak naprej, gapremaknemo za 4 znake naprej, saj znaka B sploh nimamo vvzorcu!Algoritem: Zgradimo tabelo, ki hrani stevilo znakov, ki jihlahko preskocimo glede na trenutni znak besedila.
Primera:
I Vzorec AAAA: vedno lahko preskocimo kar vse 4 znake, cese pojavi kateri koli znak 6=A na vhodu.
I Vzorec ABAB: ce se pojavi B na vhodu in pricakujemo A,potem preskocimo le en znak. Isto velja obratno. Ce je navhodu kateri koli drug znak, preskocimo 4 znake.
![Page 62: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/62.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem
Imejmo S =AAABAAABAAABAAAB in P =AAAA iz prejsnjegaprimera.Prva zgresitev se pojavi, ko je okno na poziciji i = 0 in znakuj = 3, ce stejemo od 0 dalje.Ideja: Namesto, da premaknemo okno za 1 znak naprej, gapremaknemo za 4 znake naprej, saj znaka B sploh nimamo vvzorcu!Algoritem: Zgradimo tabelo, ki hrani stevilo znakov, ki jihlahko preskocimo glede na trenutni znak besedila. Primera:
I Vzorec AAAA: vedno lahko preskocimo kar vse 4 znake, cese pojavi kateri koli znak 6=A na vhodu.
I Vzorec ABAB: ce se pojavi B na vhodu in pricakujemo A,potem preskocimo le en znak. Isto velja obratno. Ce je navhodu kateri koli drug znak, preskocimo 4 znake.
![Page 63: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/63.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem
Imejmo S =AAABAAABAAABAAAB in P =AAAA iz prejsnjegaprimera.Prva zgresitev se pojavi, ko je okno na poziciji i = 0 in znakuj = 3, ce stejemo od 0 dalje.Ideja: Namesto, da premaknemo okno za 1 znak naprej, gapremaknemo za 4 znake naprej, saj znaka B sploh nimamo vvzorcu!Algoritem: Zgradimo tabelo, ki hrani stevilo znakov, ki jihlahko preskocimo glede na trenutni znak besedila. Primera:
I Vzorec AAAA: vedno lahko preskocimo kar vse 4 znake, cese pojavi kateri koli znak 6=A na vhodu.
I Vzorec ABAB: ce se pojavi B na vhodu in pricakujemo A,potem preskocimo le en znak. Isto velja obratno. Ce je navhodu kateri koli drug znak, preskocimo 4 znake.
![Page 64: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/64.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem — preskocna tabela
Preskocna tabela vsebuje indekse najbolj desnih pojavitev vsehmoznih znakov abecede Σ.
P = B A N A N A
Σ: 0 1 2 3 4 5 right[c]A -1 -1 1 1 3 3 5 5B -1 0 0 0 0 0 0 0C -1 -1 -1 -1 -1 -1 -1 -1D -1 -1 -1 -1 -1 -1 -1 -1E -1 -1 -1 -1 -1 -1 -1 -1...M -1 -1 -1 -1 -1 -1 -1 -1N -1 -1 -1 2 2 4 4 4O -1 -1 -1 -1 -1 -1 -1 -1...
![Page 65: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/65.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem — preskocna tabela
Preskocna tabela vsebuje indekse najbolj desnih pojavitev vsehmoznih znakov abecede Σ.
P = B A N A N A
Σ:
0 1 2 3 4 5
right[c]A -1 -1 1 1 3 3 5 5B -1 0 0 0 0 0 0 0C -1 -1 -1 -1 -1 -1 -1 -1D -1 -1 -1 -1 -1 -1 -1 -1E -1 -1 -1 -1 -1 -1 -1 -1...M -1 -1 -1 -1 -1 -1 -1 -1N -1 -1 -1 2 2 4 4 4O -1 -1 -1 -1 -1 -1 -1 -1...
![Page 66: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/66.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem — preskocna tabela
Preskocna tabela vsebuje indekse najbolj desnih pojavitev vsehmoznih znakov abecede Σ.
P = B A N A N A
Σ: 0 1 2 3 4 5
right[c]
A
-1 -1 1 1 3 3 5 5
B
-1 0 0 0 0 0 0 0
C
-1 -1 -1 -1 -1 -1 -1 -1
D
-1 -1 -1 -1 -1 -1 -1 -1
E
-1 -1 -1 -1 -1 -1 -1 -1
...M
-1 -1 -1 -1 -1 -1 -1 -1
N
-1 -1 -1 2 2 4 4 4
O
-1 -1 -1 -1 -1 -1 -1 -1
...
![Page 67: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/67.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem — preskocna tabela
Preskocna tabela vsebuje indekse najbolj desnih pojavitev vsehmoznih znakov abecede Σ.
P = B A N A N A
Σ: 0 1 2 3 4 5
right[c]
A -1 -1 1 1 3 3 5
5
B -1 0 0 0 0 0 0
0
C -1 -1 -1 -1 -1 -1 -1
-1
D -1 -1 -1 -1 -1 -1 -1
-1
E -1 -1 -1 -1 -1 -1 -1
-1
...M -1 -1 -1 -1 -1 -1 -1
-1
N -1 -1 -1 2 2 4 4
4
O -1 -1 -1 -1 -1 -1 -1
-1
...
![Page 68: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/68.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem — preskocna tabela
Preskocna tabela vsebuje indekse najbolj desnih pojavitev vsehmoznih znakov abecede Σ.
P = B A N A N A
Σ: 0 1 2 3 4 5 right[c]A -1 -1 1 1 3 3 5 5B -1 0 0 0 0 0 0 0C -1 -1 -1 -1 -1 -1 -1 -1D -1 -1 -1 -1 -1 -1 -1 -1E -1 -1 -1 -1 -1 -1 -1 -1...M -1 -1 -1 -1 -1 -1 -1 -1N -1 -1 -1 2 2 4 4 4O -1 -1 -1 -1 -1 -1 -1 -1...
![Page 69: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/69.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
![Page 70: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/70.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
![Page 71: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/71.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
![Page 72: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/72.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
![Page 73: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/73.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
![Page 74: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/74.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
![Page 75: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/75.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
![Page 76: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/76.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P:
![Page 77: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/77.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Boyer-Moorov algoritem nadal.
Iskanje: Okno postavimo na zacetek i = 0 in preverjamo znakeod desne proti levi j = |P| − 1:
I Ce se znak c v besedilu ujema z znakom v oknu,nadaljujemo s preverjanjem naslednjega znaka v oknu inbesedilu.
I Ce se c ne ujema in je right[c]= −1, potem premakniokno za |P| znakov naprej.
I Ce se c ne ujema in right[c] 6= −1, potem premaknemookno za j−right[c] znakov. V primeru, da bi bilavrednost negativna, okno premaknemo za 1 znak naprej.
NA DREVESU RASTEJO BANANE.BANANA
S:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P: NA DREVESU RASTEJO BANANE.BANANAS:P:
NA DREVESU RASTEJO BANANE.BANANA
S:P:
![Page 78: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/78.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Rabin-Karpov algoritem
Uporabimo znanje iz zgoscevalnih tabel:
1. Najprej izracunamo zgosceno vrednost vzorca HP .
2. Postavimo okno na zacetek i = 0 in izracunamo zgoscenovrednost znakov pod oknom HS .
3. Ce HS = HP , preverimo vse znake pod oknom, da seprepricamo o enakosti, in vrnemo mesto pojavitve.
4. Ce HS 6= HP , se premaknemo za en znak naprej,izracunamo novo zgosceno vrednost znakov pod oknomHS in gremo na korak 3.
![Page 79: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/79.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Rabin-Karpov algoritem
Uporabimo znanje iz zgoscevalnih tabel:
1. Najprej izracunamo zgosceno vrednost vzorca HP .
2. Postavimo okno na zacetek i = 0 in izracunamo zgoscenovrednost znakov pod oknom HS .
3. Ce HS = HP , preverimo vse znake pod oknom, da seprepricamo o enakosti, in vrnemo mesto pojavitve.
4. Ce HS 6= HP , se premaknemo za en znak naprej,izracunamo novo zgosceno vrednost znakov pod oknomHS in gremo na korak 3.
![Page 80: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/80.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Rabin-Karpov algoritem
Uporabimo znanje iz zgoscevalnih tabel:
1. Najprej izracunamo zgosceno vrednost vzorca HP .
2. Postavimo okno na zacetek i = 0 in izracunamo zgoscenovrednost znakov pod oknom HS .
3. Ce HS = HP , preverimo vse znake pod oknom, da seprepricamo o enakosti, in vrnemo mesto pojavitve.
4. Ce HS 6= HP , se premaknemo za en znak naprej,izracunamo novo zgosceno vrednost znakov pod oknomHS in gremo na korak 3.
![Page 81: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/81.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Rabin-Karpov algoritem
Uporabimo znanje iz zgoscevalnih tabel:
1. Najprej izracunamo zgosceno vrednost vzorca HP .
2. Postavimo okno na zacetek i = 0 in izracunamo zgoscenovrednost znakov pod oknom HS .
3. Ce HS = HP , preverimo vse znake pod oknom, da seprepricamo o enakosti, in vrnemo mesto pojavitve.
4. Ce HS 6= HP , se premaknemo za en znak naprej,izracunamo novo zgosceno vrednost znakov pod oknomHS in gremo na korak 3.
![Page 82: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/82.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Rabin-Karpov algoritem
Uporabimo znanje iz zgoscevalnih tabel:
1. Najprej izracunamo zgosceno vrednost vzorca HP .
2. Postavimo okno na zacetek i = 0 in izracunamo zgoscenovrednost znakov pod oknom HS .
3. Ce HS = HP , preverimo vse znake pod oknom, da seprepricamo o enakosti, in vrnemo mesto pojavitve.
4. Ce HS 6= HP , se premaknemo za en znak naprej,izracunamo novo zgosceno vrednost znakov pod oknomHS in gremo na korak 3.
![Page 83: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/83.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Rabin-Karpov algoritem nadal.
Ideja: Ce imamo pametno zgoscevalno funkcijo, nam ni trebaprebrati ponovno vseh znakov pod oknom, ampak le dodamozgosceno vrednost novega znaka in odstranimo zgoscenovrednost najstarejsega znaka. Tako pohitrimo iskanje.
Robin-Karpova zgoscevalna funkcija:
H = c1a|P|−1 + c2a|P|−2 + ...+ c|P|a0
Ko pride nov znak c ′, odstranimo najstarejsi znak cold inizracunamo nov
H ′ = H · a− cold · a|P| + c ′
![Page 84: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/84.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Rabin-Karpov algoritem nadal.
Ideja: Ce imamo pametno zgoscevalno funkcijo, nam ni trebaprebrati ponovno vseh znakov pod oknom, ampak le dodamozgosceno vrednost novega znaka in odstranimo zgoscenovrednost najstarejsega znaka. Tako pohitrimo iskanje.Robin-Karpova zgoscevalna funkcija:
H = c1a|P|−1 + c2a|P|−2 + ...+ c|P|a0
Ko pride nov znak c ′, odstranimo najstarejsi znak cold inizracunamo nov
H ′ = H · a− cold · a|P| + c ′
![Page 85: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/85.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Rabin-Karpov algoritem nadal.
Ideja: Ce imamo pametno zgoscevalno funkcijo, nam ni trebaprebrati ponovno vseh znakov pod oknom, ampak le dodamozgosceno vrednost novega znaka in odstranimo zgoscenovrednost najstarejsega znaka. Tako pohitrimo iskanje.Robin-Karpova zgoscevalna funkcija:
H = c1a|P|−1 + c2a|P|−2 + ...+ c|P|a0
Ko pride nov znak c ′, odstranimo najstarejsi znak cold inizracunamo nov
H ′ = H · a− cold · a|P| + c ′
![Page 86: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/86.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Podobnost med nizi
Levenshteinova razdalja ali urejevalna razdalja δ med dvemanizoma S1 in S2 je najmanjse stevilo vstavljanj, brisanj alizamenjav posameznih znakov, da spremenimo S1 v S2.
![Page 87: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/87.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
2 3 4 5 6
A 1 1 2 3 4 5N 2 2 2 2 3 4A 3 3 2 2 2 3N 4 4 3 2 2 2A 5 5 4 3 2 2S 6 6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 88: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/88.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
2 3 4 5 6
A 1 1 2 3 4 5N 2 2 2 2 3 4A 3 3 2 2 2 3N 4 4 3 2 2 2A 5 5 4 3 2 2S 6 6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 89: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/89.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
2 3 4 5 6
A 1 1 2 3 4 5N 2 2 2 2 3 4A 3 3 2 2 2 3N 4 4 3 2 2 2A 5 5 4 3 2 2S 6 6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 90: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/90.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1
1 2 3 4 5
N 2
2 2 2 3 4
A 3
3 2 2 2 3
N 4
4 3 2 2 2
A 5
5 4 3 2 2
S 6
6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 91: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/91.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1 1 1 2 3 4 5N 2
2 2 2 3 4
A 3
3 2 2 2 3
N 4
4 3 2 2 2
A 5
5 4 3 2 2
S 6
6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 92: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/92.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1 1 1 2 3 4 5N 2 2 2 1 2 3 4A 3
3 2 2 2 3
N 4
4 3 2 2 2
A 5
5 4 3 2 2
S 6
6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 93: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/93.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1 1 1 2 3 4 5N 2 2 2 1 2 3 4A 3 3 2 2 1 2 3N 4
4 3 2 2 2
A 5
5 4 3 2 2
S 6
6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 94: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/94.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1 1 1 2 3 4 5N 2 2 2 1 2 3 4A 3 3 2 2 1 2 3N 4 4 3 2 2 1 2A 5
5 4 3 2 2
S 6
6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 95: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/95.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1 1 1 2 3 4 5N 2 2 2 1 2 3 4A 3 3 2 2 1 2 3N 4 4 3 2 2 1 2A 5 5 4 3 2 2 1S 6
6 5 4 3 3
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 96: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/96.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1 1 1 2 3 4 5N 2 2 2 1 2 3 4A 3 3 2 2 1 2 3N 4 4 3 2 2 1 2A 5 5 4 3 2 2 1S 6 6 5 4 3 3 2
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 97: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/97.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1 1 1 2 3 4 5N 2 2 2 1 2 3 4A 3 3 2 2 1 2 3N 4 4 3 2 2 1 2A 5 5 4 3 2 2 1S 6 6 5 4 3 3 2
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|).
Pot nam pove, katere ukaze je potrebno izvesti.
![Page 98: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/98.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Izracun Levenshteinove razdalje
Formula za izracun razdalje med nizi S1[0..i ] in S2[0..j ]:
δ(i , j) = min
δ(i − 1, j) + 1δ(i , j − 1) + 1δ(i − 1, j − 1) + 1 ce S1[i ] 6= S2[j ]δ(i − 1, j − 1) ce S1[i ] = S2[j ]
Izracun razdalje se naredi z Levenshteinovo matriko:
B A N A N A
0 1 2 3 4 5 6A 1 1 1 2 3 4 5N 2 2 2 1 2 3 4A 3 3 2 2 1 2 3N 4 4 3 2 2 1 2A 5 5 4 3 2 2 1S 6 6 5 4 3 3 2
Levenshteinova razdalja se nahaja spodnjem desnem kotuδ(|S1|, |S2|). Pot nam pove, katere ukaze je potrebno izvesti.
![Page 99: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/99.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Najdaljsi skupni podniz (longest common substr.)
Za izracun najdaljsega skupnega podniza lahko uporabimopriponsko drevo obeh nizov in pogledamo najgloblje skupnovozlisce.
Lahko pa uporabimo matriko, podobno Levenshteinovi, le daspremenimo pogoj:
LCSuff (S1[1..i ],S2[1..j ]) ={LCSuff (S1[1..i − 1],S2[1..j − 1]) + 1 ce S1[i ] = S2[j ]0 sicer
B A N A N A
0 0 0 0 0 0 0A 0 0 1 0 1 0 1N 0 0 0 2 0 2 0A 0 0 1 0 3 0 3N 0 0 0 2 0 4 0A 0 0 0 0 3 0 5S 0 0 0 0 0 0 0
![Page 100: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/100.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Najdaljsi skupni podniz (longest common substr.)
Za izracun najdaljsega skupnega podniza lahko uporabimopriponsko drevo obeh nizov in pogledamo najgloblje skupnovozlisce.Lahko pa uporabimo matriko, podobno Levenshteinovi, le daspremenimo pogoj:
LCSuff (S1[1..i ],S2[1..j ]) ={LCSuff (S1[1..i − 1],S2[1..j − 1]) + 1 ce S1[i ] = S2[j ]0 sicer
B A N A N A
0 0 0 0 0 0 0A 0 0 1 0 1 0 1N 0 0 0 2 0 2 0A 0 0 1 0 3 0 3N 0 0 0 2 0 4 0A 0 0 0 0 3 0 5S 0 0 0 0 0 0 0
![Page 101: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/101.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Najdaljsi skupni podniz (longest common substr.)
Za izracun najdaljsega skupnega podniza lahko uporabimopriponsko drevo obeh nizov in pogledamo najgloblje skupnovozlisce.Lahko pa uporabimo matriko, podobno Levenshteinovi, le daspremenimo pogoj:
LCSuff (S1[1..i ],S2[1..j ]) ={LCSuff (S1[1..i − 1],S2[1..j − 1]) + 1 ce S1[i ] = S2[j ]0 sicer
B A N A N A
0 0 0 0 0 0 0A 0 0 1 0 1 0 1N 0 0 0 2 0 2 0A 0 0 1 0 3 0 3N 0 0 0 2 0 4 0A 0 0 0 0 3 0 5S 0 0 0 0 0 0 0
![Page 102: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/102.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Najdaljse skupno podzaporedje (LCS)
Najdaljse skupno podzaporedje (ang. longest commonsubsequence) je podobno najdaljsemu skupnemu podnizu, le dase lahko med posameznimi znaki, ki so prisotni v obeh nizih,vrinjeni tudi tuji znaki.
LCS(S1[1..i ], S2[1..j ]) =LCS(S1[1..i − 1],S2[1..j − 1]) + 1 ce S1[i ] = S2[j ]max(LCS(S1[1..i ],S2[1..j − 1]), LCS(S1[1..i − 1],S2[1..j ])ce S1[i ] 6= S2[j ])
B A N A N A
0 0 0 0 0 0 0A 0 0 1 1 1 1 1N 0 0 1 2 2 2 2A 0 0 1 2 3 3 3N 0 0 1 2 3 4 4A 0 0 1 2 3 4 5S 0 0 1 2 3 4 5
![Page 103: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/103.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Najdaljse skupno podzaporedje (LCS)
Najdaljse skupno podzaporedje (ang. longest commonsubsequence) je podobno najdaljsemu skupnemu podnizu, le dase lahko med posameznimi znaki, ki so prisotni v obeh nizih,vrinjeni tudi tuji znaki.
LCS(S1[1..i ], S2[1..j ]) =LCS(S1[1..i − 1],S2[1..j − 1]) + 1 ce S1[i ] = S2[j ]max(LCS(S1[1..i ],S2[1..j − 1]), LCS(S1[1..i − 1],S2[1..j ])ce S1[i ] 6= S2[j ])
B A N A N A
0 0 0 0 0 0 0A 0 0 1 1 1 1 1N 0 0 1 2 2 2 2A 0 0 1 2 3 3 3N 0 0 1 2 3 4 4A 0 0 1 2 3 4 5S 0 0 1 2 3 4 5
![Page 104: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/104.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Najdaljse skupno podzaporedje (LCS)
Najdaljse skupno podzaporedje (ang. longest commonsubsequence) je podobno najdaljsemu skupnemu podnizu, le dase lahko med posameznimi znaki, ki so prisotni v obeh nizih,vrinjeni tudi tuji znaki.
LCS(S1[1..i ], S2[1..j ]) =LCS(S1[1..i − 1],S2[1..j − 1]) + 1 ce S1[i ] = S2[j ]max(LCS(S1[1..i ],S2[1..j − 1]), LCS(S1[1..i − 1],S2[1..j ])ce S1[i ] 6= S2[j ])
B A N A N A
0 0 0 0 0 0 0A 0 0 1 1 1 1 1N 0 0 1 2 2 2 2A 0 0 1 2 3 3 3N 0 0 1 2 3 4 4A 0 0 1 2 3 4 5S 0 0 1 2 3 4 5
![Page 105: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/105.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo
Burkhard-Kellerjevo drevo se uporablja pri crkovalnikih in jeuporabno za iskanje podobnih besed.
Gradnja: Zacnemo s poljubnim pojmom. Nato dodamo novogeslo tako, da izracunamo urejevalno razdaljo D med trenutnimvozliscem in novim geslom. Ce povezava v smeri razdalje neobstaja, novo geslo pripnemo obstojecemu vozliscu. Sicersledimo povezavi in izracunamo urejevalno razdaljo med novimvozliscem in nasim geslom.Iskanje najbolj podobnih besed z urejevalno razdaljo δ:Zacnemo pri korenu in izracunamo urejevalno razdaljo D mediskanim geslom in trenutnim vozliscem. Ce je D ≤ δ, potemizpisemo trenutno vozlisce. Preiskujemo tiste otroke, ki imajorazdaljo ≥ D − δ ali ≤ D + δ.
![Page 106: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/106.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo
Burkhard-Kellerjevo drevo se uporablja pri crkovalnikih in jeuporabno za iskanje podobnih besed.Gradnja: Zacnemo s poljubnim pojmom. Nato dodamo novogeslo tako, da izracunamo urejevalno razdaljo D med trenutnimvozliscem in novim geslom. Ce povezava v smeri razdalje neobstaja, novo geslo pripnemo obstojecemu vozliscu. Sicersledimo povezavi in izracunamo urejevalno razdaljo med novimvozliscem in nasim geslom.
Iskanje najbolj podobnih besed z urejevalno razdaljo δ:Zacnemo pri korenu in izracunamo urejevalno razdaljo D mediskanim geslom in trenutnim vozliscem. Ce je D ≤ δ, potemizpisemo trenutno vozlisce. Preiskujemo tiste otroke, ki imajorazdaljo ≥ D − δ ali ≤ D + δ.
![Page 107: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/107.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo
Burkhard-Kellerjevo drevo se uporablja pri crkovalnikih in jeuporabno za iskanje podobnih besed.Gradnja: Zacnemo s poljubnim pojmom. Nato dodamo novogeslo tako, da izracunamo urejevalno razdaljo D med trenutnimvozliscem in novim geslom. Ce povezava v smeri razdalje neobstaja, novo geslo pripnemo obstojecemu vozliscu. Sicersledimo povezavi in izracunamo urejevalno razdaljo med novimvozliscem in nasim geslom.Iskanje najbolj podobnih besed z urejevalno razdaljo δ:Zacnemo pri korenu in izracunamo urejevalno razdaljo D mediskanim geslom in trenutnim vozliscem. Ce je D ≤ δ, potemizpisemo trenutno vozlisce. Preiskujemo tiste otroke, ki imajorazdaljo ≥ D − δ ali ≤ D + δ.
![Page 108: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/108.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo nadal.
geslauraurarurnikavtopespesem
geslauraurarurnikavtopespesem
urageslauraurarurnikavtopespesem
1ura
urar
geslauraurarurnikavtopespesem
1ura
urnikurar3
geslauraurarurnikavtopespesem
1avto
ura
urnikurar3 4
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
urar3 4
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
iskanje: ira, δ=2D=1D=2 D=4 D=4
D=3D=5
![Page 109: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/109.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo nadal.
geslauraurarurnikavtopespesem
geslauraurarurnikavtopespesem
ura
geslauraurarurnikavtopespesem
1ura
urar
geslauraurarurnikavtopespesem
1ura
urnikurar3
geslauraurarurnikavtopespesem
1avto
ura
urnikurar3 4
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
urar3 4
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
iskanje: ira, δ=2D=1D=2 D=4 D=4
D=3D=5
![Page 110: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/110.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo nadal.
geslauraurarurnikavtopespesem
geslauraurarurnikavtopespesem
ura
geslauraurarurnikavtopespesem
1ura
urar
geslauraurarurnikavtopespesem
1ura
urnikurar3
geslauraurarurnikavtopespesem
1avto
ura
urnikurar3 4
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
urar3 4
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
iskanje: ira, δ=2D=1D=2 D=4 D=4
D=3D=5
![Page 111: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/111.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo nadal.
geslauraurarurnikavtopespesem
geslauraurarurnikavtopespesem
urageslauraurarurnikavtopespesem
1ura
urar
geslauraurarurnikavtopespesem
1ura
urnikurar3
geslauraurarurnikavtopespesem
1avto
ura
urnikurar3 4
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
urar3 4
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
iskanje: ira, δ=2D=1D=2 D=4 D=4
D=3D=5
![Page 112: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/112.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo nadal.
geslauraurarurnikavtopespesem
geslauraurarurnikavtopespesem
urageslauraurarurnikavtopespesem
1ura
urar
geslauraurarurnikavtopespesem
1ura
urnikurar3
geslauraurarurnikavtopespesem
1avto
ura
urnikurar3 4
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
urar3 4
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
iskanje: ira, δ=2D=1D=2 D=4 D=4
D=3D=5
![Page 113: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/113.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo nadal.
geslauraurarurnikavtopespesem
geslauraurarurnikavtopespesem
urageslauraurarurnikavtopespesem
1ura
urar
geslauraurarurnikavtopespesem
1ura
urnikurar3
geslauraurarurnikavtopespesem
1avto
ura
urnikurar3 4
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
urar3 4
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
iskanje: ira, δ=2D=1D=2 D=4 D=4
D=3D=5
![Page 114: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/114.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo nadal.
geslauraurarurnikavtopespesem
geslauraurarurnikavtopespesem
urageslauraurarurnikavtopespesem
1ura
urar
geslauraurarurnikavtopespesem
1ura
urnikurar3
geslauraurarurnikavtopespesem
1avto
ura
urnikurar3 4
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
urar3 4
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
iskanje: ira, δ=2D=1D=2 D=4 D=4
D=3D=5
![Page 115: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/115.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
BK-drevo nadal.
geslauraurarurnikavtopespesem
geslauraurarurnikavtopespesem
urageslauraurarurnikavtopespesem
1ura
urar
geslauraurarurnikavtopespesem
1ura
urnikurar3
geslauraurarurnikavtopespesem
1avto
ura
urnikurar3 4
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
urar3 4
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
geslauraurarurnikavtopespesem
1avto
ura
urnik
pes
pesemurar3 4
5
5
iskanje: ira, δ=2D=1D=2 D=4 D=4
D=3D=5
![Page 116: Delo z nizi - Home | LUSY · Zgo s cevalna tabela (ang. Hash table) Zgo s ceno vrednost izra cunamo za vsako besedo v vhodnem besedilu. Nato vstavimo besedo kot obi cajni element](https://reader035.vdocuments.pub/reader035/viewer/2022070801/5f02674e7e708231d4041b70/html5/thumbnails/116.jpg)
Delo z nizi
MatevzJekovec
Uvod
Indeksiranjebesedila
Iskanje zoknom
Podobnostmed nizi
Vaje in naloge
Vaje in Naloge
Vaje:I S pomocjo urejanja (npr. quicksort) uredi vnesene nize po
abecedi.I Sprogramiraj stevilsko drevo, ki podpira operaciji
vstavljanja in iskanja.I Sprogramiraj BK-drevo, ki podpira operaciji vstavljanja in
iskanja.I Sprogramiraj Edit Distance, Longest Common Substring in
Longest Common Subsequence s pomocjo dinamicnegaprogramiranja.
UVa naloge:
499 What’s The Frequency, Kenneth?
454 Anagrams
164 String Computer - Edit distance
290 Palindroms ↔ smordnilaP
335 Processing MX Records
455 Periodic Strings