delo z nizi - home | lusy · zgo s cevalna tabela (ang. hash table) zgo s ceno vrednost izra cunamo...

116
Delo z nizi Matevˇ z Jekovec Uvod Indeksiranje besedila Iskanje z oknom Podobnost med nizi Vaje in naloge Delo z nizi Matevˇ z Jekovec Univerza v Ljubljani Fakulteta za raˇ cunalniˇ stvo in informatiko Poletna ˇ sola 2014 — Programiranje v viˇ sji prestavi

Upload: others

Post on 05-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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