47
Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF) algoritmi Linearno ispitivanje Analiza heširanja otvorenim adresiranjem Linearno ispitivanje Za datu obiˇ cnu heš funkciju h : U →{0, 1,... m 1} kojoj se obra´ camo kao pomo´ cnoj heš funkciji metod linearnog ispitivanja koristi heš funkciju h(k, i)=(h (k)+ i) mod m, za i ∈{0, 1,... m 1}. Za kljuˇ c k prva ´ celija koju ispitujemo je T[h (k)], tj. ´ celija zadata pomo´ cnom heš funkcijom. Dalje ispitujemo T[h (k)+ 1] itd. dok ne dodjemo do T[m 1]. Tada ispitujemo ´ celije T[0], T[1] ... dok ne probamo ´ celiju T[h (k) 1]. Linearno ispitivanje je jednostavno za implementaciju, ali dopušta problem poznat kao primarno klasterovanje. Izgradjuje se dug niz zauzetih ´ celija i raste vreme pretraživanja. Klasteri se prave obzirom da se prazna ´ celija, koja prethodi nizu od i punih ´ celija, popunjava slede´ ca sa verovatno´ com i + 1 m .

Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Linearno ispitivanje

Za datu obicnu heš funkciju h′ : U 7→ {0, 1, . . . m − 1} kojoj seobracamo kao pomocnoj heš funkciji metod linearnogispitivanja koristi heš funkciju h(k, i) = (h′(k) + i) mod m, zai ∈ {0, 1, . . . m − 1}. Za kljuc k prva celija koju ispitujemo jeT[h′(k)], tj. celija zadata pomocnom heš funkcijom. Daljeispitujemo T[h′(k) + 1] itd. dok ne dodjemo do T[m − 1]. Tadaispitujemo celije T[0], T[1] . . . dok ne probamo celijuT[h′(k) − 1].Linearno ispitivanje je jednostavno za implementaciju, alidopušta problem poznat kao primarno klasterovanje. Izgradjujese dug niz zauzetih celija i raste vreme pretraživanja. Klasterise prave obzirom da se prazna celija, koja prethodi nizu od i

punih celija, popunjava sledeca sa verovatnocomi + 1

m.

Page 2: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Kvadratno ispitivanje

Dug niz zauzetih celija ima tendenciju rasta, pa raste i srednjavrednost traženja.Kvadratno ispitivanje koristi heš funkciju oblikah(k, i) = (h′(k) + c1i + c2i2) mod m, gde je h′ pomocna hešfunkcija, c1, c2 6= 0 pomocne konstante i i ∈ {0, 1, . . . m − 1}.Inicijalna pozicija ispitivanja je T[h′(k)]. Naredne pozicije kojese ispituju izjednacavaju se sa vrednostima koje zavise odponašanja kvadrata posmatranog broja i. Ovaj metod radimnogo bolje od linearnog ispitivanja, ali da bi iskorišcenje heštabele bilo potpuno, vrednosti c1, c2 i m moraju biti ogranicene.Ako dva kljuca imaju iste inicijalne pozicije, njihovi probni nizovisu jednaki, jer je h(k1, 0) = h(k2, 0), što povlacih(k1, i) = h(k2, i).Ova osobina vodi do blaže forme klasterovanja–sekundarnoklasterovanje.

Page 3: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Dvostruko heširanje

Dvostruko heširanje je jedna od najboljih metoda dostupnih zaotvoreno adresiranje zbog toga što permutacije koje se dobijajuimaju mnoge karakteristike slucajno izabranih permutacija.Dvostruko heširanje koristi heš funkciju oblika:

h(k, i) = (h1(k) + ih2(k)) mod m,

gde su h1, h2 pomocne heš funkcije.Inicijalna probna pozicija je T[h1(k)]. Sukcesivne probnepozicije razlikuju se od prethodne pozicije za h2(k) modulo m.Za razliku od linearnog i kvadratnog ispitivanja, ovde probni niz,na dva nacina, zavisi od kljuca k, obzirom da inicijalna probnapozicija ili obe probne pozicije mogu da variraju.

Page 4: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Dvostruko heširanje(cont.)

Vrednost h2(k) mora biti uzajamno prosta sa dužinom m heštabele. Uobicajeni nacin da se ostvari ovaj uslov je da m budestepen broja 2 i da se h2 definiše tako da uvek rezultuje prostimbrojem. Drugi nacin je da m bude prost i da se h2 dizajnira takoda uvek bude pozitivan ceo broj manji od m.

Primer:Pretpostavimo da je m prost broj i

h1(k) = k mod m,

h2(k) = 1 + (k mod m′),

gde je m′ izabrano da bude malo manje od m (recimo m − 1).

Page 5: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Dvostruko heširanje(cont.)

Primer:

Ako je k = 123456, m = 701 i m′ = 700 imamo da jeh1(k) = 80, h2(k) = 257. Dakle, prva proba je na poziciji80 = h1(k) i ispituje se svaka 257. celija modulo m dok se nenadje kljuc ili dok se ne ispitaju sve celije.

Dvostruko heširanje je uopštenje linearnog ili kvadratnogispitivanja u O(m2) probnih nizova koji se koriste u odnosu naO(m), obzirom da svaki moguci par (h1(k1), h2(k2)) donosirazlicite probne nizove. Kao rezultat, uspeh dvostrukogheširanja se cini veoma bliskim uspehu "idealne" šemeuniformnog heširanja.

Page 6: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Analiza heširanja otvorenim adresiranjem

Naša analiza otvorenog adresiranja bice izražena preko faktora

opterecenja α =n

m, ali kada m, n → ∞.

Napomena:

U otvorenom adresiranju imamo najviše jedan element u celiji,pa kako je n 6 m, to povlaci α 6 1.

Pretpostavimo da je rec o uniformnom heširanju.U ovoj idealizovanoj šemi, niz ispitivanja{h(k, 0), h(k, 1), . . . , h(k, m − 1)}, koji se koristi za ubacivanjeili traženje kljuca k može sa bilo kojom verovatnocom biti bilokoja permutacija skupa {0, 1, . . . , m − 1}.Dati kljuc ima jedinstven niz ispitivanja odredjen njime.

Page 7: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Analiza heširanja otvorenim adresiranjem(cont.)

Pocinjemo sa analizom broja ispitivanja u bezuspešnomtraženju.Teorema:Za datu heš tabelu otvorenog adresiranja sa faktorom

opterecenja α =n

m< 1, ocekivani broj ispitivanja je najviše

1

1 − α, uz pretpostavku uniformnog heširanja.

Dokaz: U bezuspešnom traženju, svako ispitivanje osimposlednjeg, pristupa zauzetoj celiji koja ne sadrži željeni kljuc,dok je poslednja probana celija prazna.Definišemo slucajnu promenljivu X koja predstavlja brojispitivanja ucinjenih u bezuspešnom traženju.

Page 8: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Analiza heširanja otvorenim adresiranjem(cont.)

Neka je Ai, za i = 1, 2, . . . dogadjaj u kome postoji i-toispitivanje i to je zauzeta celija. Tada je dogadjaj {X > i}presek dogadjaja A1 ∩ A2 ∩ · · · ∩ Ai−1. Ogranicimoverovatnocu P{X > i} ogranicavajuci

P{A1 ∩ A2 ∩ · · · ∩ Ai−1} = P{A1} · P{A2| A1} · P{A3| A1 ∩ A2}·

· · · P{Ai−1| A1 ∩ A2 ∩ · · · ∩ Ai−2}

Kako u m celija ima n elemenata to je P{A1} =n

m.

Za j > 1, verovatnoca da postoji j-ta proba i da je to zauzetacelija, pri cemu je i prethodnih j − 1 ispitivanja dalo zauzete

celije jen − j + 1

m − j + 1, zbog pretpostavke uniformnog heširanja.

Page 9: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Analiza heširanja otvorenim adresiranjem(cont.)

Obzirom da je n < m imamon − j

m − j6

n

m, za svaki 0 6 j 6 m.

Prema tome, imamo da je verovatnoca

P{X > i} =n

n − 1

m − 1· · ·

n − i + 2

m − i + 26( n

m

)

i−1= α

i−1

E[X] =∞∑

i=1

P{X > i} 6

∞∑

i=1

αi−1 =

∞∑

i=0

αi =

1

1 − α.

Dakle, ogranicili smo sumu i gornja granica za1 + α + α2 + · · · ima intuitivnu interpretaciju.Jedno ispitivanje se uvek vrši i ono sa verovatnocomaproksimativno α daje zauzetu celiju, pa je neophodno drugoispitivanje.

Page 10: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Analiza heširanja otvorenim adresiranjem(cont.)

Sa verovatnocom, aproksimativno, α2 prve dve celije suzauzete i neophodno je trece ispitivanje itd. Ako je α konstanta,neuspešno traženje se odvija u O(1) vremenu.Posledica:Ubacivanje elemenata u heš tabelu otvorenog adresiranja sa

faktorom opterecenja α, zahteva najviše1

1 − αispitivanja u

proseku, uz uslov uniformnog heširanja.

Dokaz: Element se u tabelu ubacuje samo ako postoji praznacelija i α < 1. Ubacivanje kljuca zahteva bezuspešno traženjepraceno smeštanjem kljuca u prvu praznu celiju koja je

nadjena. Tako je ocekivani broj proba najviše1

1 − α.

Page 11: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Analiza heširanja otvorenim adresiranjem(cont.)

Racunanje ocekivanog broja ispitivanja za uspešno traženjezahteva malo više posla.Teorema:Za datu heš tabelu otvorenog adresiranja sa faktoromopterecenja α < 1, ocekivani broj ispitivanja za uspešno

traženje je najviše1

αln

1

1 − α, uz pretpostavku uniformnog

heširanja i pretpostavku da svi kljucevi imaju jednake verovat-noce da budu nadjeni u tabeli.

Dokaz: Traženje kljuca k ima isti niz ispitivanja kao ubacivanjeelementa sa kljucem k. Prema prethodnoj pretpostavci, ako je kbio i + 1. kljuc ubacen u heš tabelu, tj. ocekivani broj ispitivanjaucinjenih u traženju kljuca k je najviše:

Page 12: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Linearno ispitivanjeAnaliza heširanja otvorenim adresiranjem

Analiza heširanja otvorenim adresiranjem(cont.)

1

1 − im

=m

m − i.

Tako dobijamo srednji broj svih ispitivanja u uspešnom traženju:

1

n

n−1∑

i=0

m

m − i=

m

n

n−1∑

i=0

1

m − i=

1

α

m∑

k=m−n+1

1

k

61

α

∫ m

m−n

1

xdx =

1

α(ln x)|m

m−n =1

αln

m

m − n1

αln

1

1 − nm

=1

αln

1

1 − α.

Page 13: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Perfektno heširanje

Mada se heširanje najviše koristi za odlicne ocekivanerezultate, heširanje se može koristiti i za najgori slucaj– to je uslucaju kada je skup kljuceva staticki i jednom kada se kljucevismeste u tabelu, prostor kljuceva se ne menja.Neke aplikacije prirodno imaju staticke skupove kljuceva, naprimer, skup rezervisanih reci u programskom jeziku ili skupimena fajlova na CD-romu. Heš tehniku zovemo perfektnimheširanjem, ako je broj memorijskih pristupa pri traženju, unajgorem slucaju O(1).Osnovna ideja za kreiranje šeme perfektnog heširanja jejednostavna. Pri tome koristimo šemu heširanja sa dva nivoa, ukojoj se na svakom nivou koristi univerzalno heširanje.

Page 14: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Perfektno heširanje(cont.)

Prvi nivo je osnovni nivo, kao heširanje formiranjem lanaca:n kljuceva se hešira u m celija korišcenjem heš funkcije hpažljivo odabrane iz familije univerzalnih heš funkcija. Umestoformiranja liste kljuceva koji heširaju u istu celiju j, koristimomalu, sekundarnu heš tabelu Sj koja je odredjena hešfunkcijom hj. Pažljiv izbor funkcije hj obezbedjuje da na drugomnivou ne dodje do kolizije.Kao garancija da na drugom nivou nece doci do kolizije, trebada velicina mj heš tabele Sj bude kvadrat broja nj kljuceva kojiheširaju u celiju j. Dok imamo ovakvu kvadratnu zavisnost mj

od nj izgleda verovatnim da ce doci do prepunjavanja.Pokazacemo da dobar izbor heš funkcije na prvom nivouomogucava da ocekivana kolicina iskorišcenog prostora ostaneO(n).

Page 15: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Perfektno heširanje(cont.)

Koristimo heš funkciju iz univerzalne klase heš funkcija. Prvinivo je izabran iz klase Hp,m, gde je p prost broj veci odproizvoljne kljucne vrednosti.Oni kljucevi koji heširaju u celiju j su re-hešovani u sekundarnuheš tabelu Sj velicine mj korišcenjem heš funkcije hj izabrane izklase Hp,mj . Ici cemo u dva koraka:Najpre cemo obezbediti da u sekundarnoj heš tabeli ne dodjedo kolizije.Drugo, pokazacemo da je ocekivana kolicina memorije koja jeglobalno iskorišcena za primarnu i sekundarnu heš tabelu O(n).

Primer:Koristimo perfektno heširanje za skladištenje skupaK = {10, 22, 37, 40, 52, 60, 70, 72, 75}.

Page 16: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Perfektno heširanje(cont.)

Primer:

Spoljna heš funkcija je h(k) =(

(ak + b) mod p)

mod m, gde jea = 3, b = 42, p = 101 i m = 9. Na primer, h(75) = 2, pa kljuc75 hešira u celiju 2 tabele T.

Page 17: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Perfektno heširanje(cont.)

Teorema:

Ako n kljuceva smestimo u heš tabelu velicine m = n2 korišcen-jem heš funkcije h slucajno izabrane iz klase univerzalnih heš

funkcija, verovatnoca da ce doci do kolizije je manja od1

2.

Dokaz: Ima(n

2

)

parova kljuceva koji mogu da dodju u koliziju.

Verovatmoca da dva kljuca dodju u koliziju je1

m, ako je heš

funkcija h izabrana slucajno iz univerzalne klase heš funkcijaH . Oznacimo sa X slucajnu promenljivu koja broji kolizije.Kada je m = n2 ocekivani broj kolizija je

E[X] =

(

n

2

)

1

n2=

n(n − 1)

1

n2=

n − 1

2n<

1

2.

Page 18: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Perfektno heširanje(cont.)

Teorema:Ako n kljuceva smestimo u heš tabelu velicine m = n korišcen-jem heš funkcije h slucajno izabrane iz klase univerzalnih hešfunkcija, onda je

E[

m−1∑

j=0

n2j

]

< 2n,

gde je nj broj kljuceva koji hešira u celiju j.

Dokaz: Pocinjemo od identiteta koji važi za proizvoljannenegativan ceo broj a, tj. a2 = a + 2

(a2

)

. Imamo

E[

m−1∑

j=0

n2j

]

= E[

m−1∑

j=0

(

nj + 2

(

nj

2

)

)]

= E[

m−1∑

j=0

nj]

Page 19: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Perfektno heširanje(cont.)

+2E[

m−1∑

j=0

(

nj

2

)

]

= E[n] + 2E[

m−1∑

j=0

(

nj

2

)

]

= n + 2E[

m−1∑

j=0

(

nj

2

)

]

.

Kako je rec o univerzalnom heširanju dobijamo ocekivanuvrednost, za m = n

(

n

2

)

1

m=

n(n − 1)

2m=

n − 1

2.

Tako je

E[

m−1∑

j=0

n2j

]

6 n + 2 ·n − 1

2= 2n − 1 < 2n.

Page 20: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Perfektno heširanje(cont.)Posledica 1:Ako n kljuceva smestimo u heš tabelu velicine m = n ko-rišcenjem heš funkcije h slucajno izabrane iz univerzalne klaseheš funkcija, te ako je dužina svake sekundarne heš tabelemj = n2

j , za j = 0, m − 1, onda je ocekivana velicina skladištapotrebna za sve sekundarne heš tabele u šemi perfektnog heši-ranja manja od 2n.Posledica 2:Ako n kljuceva smestimo u heš tabelu velicine m = n ko-rišcenjem heš funkcije h slucajno izabrane iz univerzalne klaseheš funkcija, te ako izjednacimo dužinu svake sekundarne heštabele mj = n2

j , za j = 0, m − 1, onda je verovatnoca za pot-puno skladištenje sekundarnih heš tabela cija dužina nije manjaod 4n manja od 1

2 .

Page 21: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Binarna stabla

Binarna stabla su strukture podataka koje podržavaju mnogeoperacije dinamickog skupa, koje sadrže: SEARCH, MINIMUM,MAXIMUM, PREDECESSOR, SUCCESSOR, INSERT andDELETE.Tako binarna stabla mogu da se koriste kao recnik.Osnovne operacije zahtevaju vreme proprcionalno visinistablka. Za kompletno binarno stablo od n cvorova oveoperacije u najgorem slucaju zahtevaju O(n) vremena.Svaki cvor–jedan objekat.Svaki cvor sadrži polja levo, desno i p, koja pokazuju nanjegovo levo dete, desno dete i njegovog roditelja, tim redom.Ako neko dete ili roditelj nedostaju–odgovarajuce polje je NIL.Koren je jedini cvor u stablu ciji je roditeljski cvor NIL.

Page 22: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Binarna stabla(cont.)

Kljucevi su u binarnom stablu uvek uskladišteni tako dazadovoljavaju osobine stabla:Ako je x cvor stabla i y cvor levog podstabla od x, onda jekey[y] 6 key[x]. Ako je y cvor desnog podstabla od x, onda jekey[x] 6 key[y].Uredjeni prolaz kroz stablo–osobina stabla da se mogu odreditisvi kljucevi u stablu jednostavnim rekurzivnim algoritmom.Algoritam se tako naziva jer je kljuc korena nalazi izmedjuvrednosti u levom i onih u desnom podstablu.Algoritam uzima O(n) vremena za prolaz kroz stablo sa ncvorova, jer posle inicijalnog poziva, za svaki cvor pozivamoproceduru 2 puta-jednom za levo i jednom za desno dete.

Page 23: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Binarna stabla(cont.)

Teorema:Ako je x koren podstabla sa n cvorova, poziv prethodne proce-dure zahteva O(n) vremena.

Dokaz: Neka T(n) oznacava vreme potrebno zaINORDER-TREE-WALK, kada se poziva u korenu podstabla san cvorova. INORDER-TREE-WALK zahteva mali konstantnideo vremena za test ′′x 6= NIL′′.

Page 24: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Binarna stabla(cont.)

Za ispitivanje praznog podstabla T(0) = C, za proizvoljnukonstantu C.Za n > 0 pretpostavimo da se procedura poziva za cvor x cijelevo podstablo ima k, a desno n − k − 1 cvorova. Vreme da seizvrši INORDER-TREE-WALK(x) jeT(n) = T(k) + T(n − k − 1) + d , za neku pozitivnu konstantud, koja reflektuje vreme potrebno da se izvrši procedura, tj.vreme potrebno za rekurzivne pozive.Koristimo metod supstitucije da pokažemo da je T(n) = O(n),dokazujuci da je T(n) = (c + d)n + c.Za n = 0 imamo da je (c + d) · 0 + c = c = T(0).Za n > 0 imamo:

Page 25: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Binarna stabla(cont.)

T(n) = T(k) + T(n − k − 1) + d

= ((c + d)k + c) + ((c + d)(n − k − 1) + c) + d

= (c + d)n + c − c + c − d + d = (c + d)n + c.

Dakle, poziv procedure zahteva O(n) vremena.

Page 26: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Pretraživanje

Najcešca operacija–traženje kljuca smeštenog u binarnomstablu.Najpre–traženje cvora sa datim kljucem u stablu:

Procedura krece od korena niz stablo, a cvorovi posmatranitokom rekurzije traže prolazno vreme O(h), gde je h težinastabla.

Page 27: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Pretraživanje(cont.)

Page 28: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Minimum i maximum

Procedura za maximum je simetricna:

Page 29: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Sledbenik i prethodnik

Page 30: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Sledbenik i prethodnik(cont.)

Vreme rada ove procedure za stablo visine h je O(h), jerpratimo put ili uz ili niz stablo.Procedura za nalaženje prethodnika datog cvora x,PREDECESSOR (X), simetricna je ovoj proceduri, tj. krecemose niz i uz levo podstablo od x.Teorema:Dinamicki skup operacija SEARCH, MINIMUM, MAXIMUM,SUCCESSOR i PREDECESSOR mogu se napisati tako da radeu O(h) vremenu u binarnom stablu visine h.

Operacije ubacivanja i brisanja zahtevaju dinamicke skupove,koje dobijamo izmenama u binarnom stablu, uz zadržavanjeosobina ovog stabla.

Page 31: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Ubacivanje

Page 32: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Ubacivanje(cont.)

Procedura trasira put niz stablo pocev od korena. Pokazivac xtrasira put, a y ima funkciju roditelja od x. Pokazivaci se krecuniz stablo dok x ne postane NIL. Ovo NIL zauzima poziciju nakoju treba da smestimo z.

Page 33: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Brisanje

Procedura za brisanje datog cvora z iz binarnog stabla uzimakao argument pokazivac na z. Ako z nema dece modifikujemoroditelja p(z) da zameni z, a njegovo dete je NIL. Ako z imasamo jedno dete, izbacujemo z pravljenjem novog linka izmedjunjegovog roditelja i njegovog deteta. Ako cvor ima 2 detetaizbacujemo sledbenika y od z koji nema levo dete izamenjujemokljuc od z i pratece podatke, kljucem od y ipratecim podacima.

Page 34: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Brisanje(cont.)

Page 35: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Brisanje(cont.)

Page 36: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Slucajno izgradjena binarna stabla

Visina binarnog stabla varira u zavisnosti od toga da li seelementi ubacuju ili izbacuju. Zbog toga se malo zna oprosecnoj visini binarnog stabla.Definisacemo slucajno formirano binarno stablo od n kljuceva,koje raste ubacivanjem kljuceva slucajnim redom u inicijalnoprazno stablo, gde je svaka od n! permutacija ulaznih kljucevajednako verovatna. Ako sa Xn oznacimo visinu slucajnoformiranog binarnog stabla sa n kljuceva, možemo definisatieksponencijalnu visinu Yn = 2Xn . Kada gradimo ovakvo stablo,biramo jedan kljuc koji postavljamo na mesto korena i sa Rn

oznacimo slucajnu promenljivu koja cuva rang ovog kljuca.Znaci, Rn cuva poziciju koju ce ovaj kljuc zauzeti kada se ostalikljucevi sortiraju.

Page 37: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Slucajno izgradjena binarna stabla(cont.)

Svaki od brojeva {1, 2, . . . , n} ima jednaku verovatnocu dabude Rn.Ako je Rn = i levo podstablo je izgradjeno od i − 1-og, a desnood n − i slucajno izabranih kljuceva. Tada je eksponencijalnavisina Yn = 2 · max(Yi−1, Yn−i).Kao osnovni slucaj uzimamo Y1 = 1, jer je eksponencijalnavisina stabla sa jednim cvorom, 20 = 1, i pogodno je staviti daje Y0 = 0.Dalje definišemo indikatore slucajnih promenljivihZn,1, Zn,2, . . . , Zn,n, gde je Zn,i = I{Rn = i}, za svaki i = 1, n.Kako je Rn sa jednakom verovatnocom bilo koji element skupa{1, 2, . . . , n} imamo Pr{Rn = i} = 1

n , tj. E[Zn,i] = 1n , za svaki

i = 1, n.

Page 38: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Slucajno izgradjena binarna stabla(cont.)

Kako je tacno jedna od vrednosti Zn,i = 1, dok su ostale nulaimamo

Yn =n∑

i=1

Zn,i(2 · max(Yi−1, Yn−i)).

Pokazacemo samo da je E[Yn] polinomijalna funkcija od n, štoznaci da je E[Xn] = O(lg n).Indikator slucajne promenljive Zn,i = I{Rn = i} nezavisan jeod vrednosti Yi−1 i Yn−i. Levo podstablo je slucajno izgradjenood i − 1-og kljuca ciji su rangovi manji od i. Ova struktura, semkljuceva koje sadrži ne zavisi od Rn, pa su slucajne promenljiveYi−1 i Zn,i nezavisne. Isto je i sa desnim podstablom i slucajnimpromenljivim Yn−i i Zn,i.Dakle:

Page 39: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Slucajno izgradjena binarna stabla(cont.)

E[Yn] = E[

n∑

i=1

Zn,i(2 · max(Yi−1, Yn−i))]

=n∑

i=1

E[Zn,i(2 · max(Yi−1, Yn−i))]

=n∑

i=1

E[Zn,i]E[2 · max(Yi−1, Yn−i)]

=n∑

i=1

1

n2E[max(Yi−1, Yn−i)]

=2

n

n∑

i=1

E[max(Yi−1, Yn−i)] 62

n

n∑

i=1

E[Yi−1] + E[Yn−i].

Page 40: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Slucajno izgradjena binarna stabla(cont.)

Kako se svaka od E[Y0], E[Y1], . . . , E[Yn] pojavljuje dva puta uovoj sumi, jednom kao Yn−i, drugi put kao Yi−1 dobijamo

E[Yn] 64

n

n−1∑

i=0

E[Yi].

Korišcenjem principa matematicke indukcije pokazuje se davaži:

n−1∑

i=0

(

i + 3

3

)

=

(

n + 3

4

)

.

Transfinitnom indukcijom cemo takodje dokazati da je

E[Yn] =1

4

(

n + 3

3

)

.

Page 41: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Slucajno izgradjena binarna stabla(cont.)

1. Za n = 0 je E[Y0] = 0 61

4

(

3

3

)

=1

4;

Za n = 1 imamo E[Y1] = 1 61

4

(

4

3

)

= 1.

2. Pretpostavimo da za svaki i < n važi E[Yi] =1

4

(

i + 3

3

)

.

3. Dokažimo tvrdjenje za prirodan broj n. Važi:

E[Yn] 64

n

n−1∑

i=0

E[Yi] 64

n

n−1∑

i=0

1

4

(

i + 3

3

)

=1

n

n−1∑

i=0

(

i + 3

3

)

=

=1

n

(

(

3

3

)

+

(

4

3

)

+

(

5

3

)

+ · · ·

(

n + 2

3

)

)

Page 42: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Slucajno izgradjena binarna stabla(cont.)

1

n

(

n + 3

4

)

=1

n

(n + 3)!

4!(n + 3 − 4)!=

1

4n

(n + 3)!

3!(n − 1)!=

1

4

(n + 3)!

3!n!=

=1

4

(n + 3)!

3!((n + 3) − 3)!=

1

4

(

n + 3

3

)

.

Ovim smo pokazali da tvrdjenje važi za sve prirodne brojeve ikako još važi Jensenova nejednakost

E[Yn] = E[2Xn ] > 2E[Xn],

dobijamo da je

2E[Xn]6 E[Yn] 6

1

4

(

n + 3

3

)

=1

4

(n + 3)(n + 2)(n + 1)

6=

Page 43: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Ispitivanje binarnih stabalaMinimum i maximumSledbenik i prethodnikSlucajno izgradjena binarna stabla

Slucajno izgradjena binarna stabla(cont.)

=n3 + 6n2 + 11n + 6

24.

Dakle,

E[Xn] = log2 2E[Xn] = log2n3 + 6n2 + 11n + 6

246

log2 (n3 + 6n2 + 11n + 6) ≈ log2 n3 = 3 log2 n,

odnosno, E[Xn] = O(log2 n).Teorema:Ocekivana visina binarnog stabla izgradjenog od n slucajno iza-branih kljuceva je O(log2 n).

Page 44: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Predstavljanje grafova

Grafovski algoritmi

Mnogi racunarski problemi – definisani u terminima grafova;

Graf – G = (V, E);V – neprazan skup cije elemente nazivamo cvorovi grafa;E ⊆ V × V – skup cije elemente nazivamo grane grafa; Vreme

neophodno za izvršenje graf algoritma obicno zavisi od brojacvorova (|V|) grafa i broja grana grafa (|E|). Elementarni graf

algoritmi – predstavljanje i pretraživanje grafa;Algoritam pretraživanja može da otkrije puno o strukturi grafa.Predstavljanje grafa – na dva standardna nacina:

kolekcija listi susedstva

matrica susedstva

Page 45: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Predstavljanje grafova

Lista susedstva

Lista susedstva – cešci nacin za predstavljanje grafova;Dobar nacin za predstavljanje retkih grafova, |E| ≪ |V|2.Matrica susedstva – pogodna za guste grafove, |E| ∼ |V|2

Reprezentacija od G = (V, E) listom susedstva – niz Adj kojise sastoji od |V| listi od kojih svaka odgovara po jednom cvoruiz V.u ∈ V, Adj[u] = {v | (u, v) ∈ E} – skup svih suseda cvora u uG (može da sadrži i pokazivace na cvorove)

Za usmereni graf G – suma dužina svih listi susedstva je |E|;Za neusmereni graf G – suma dužina svih listi susedstva je2|E|;U oba slucaja u memoriji je potrebno O(V + E) prostora.

Page 46: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Predstavljanje grafova

Lista susedstva (cont.)

Lista susedstva – može biti prilagodjena predstavljanjutežinskih grafova;Težinski grafovi – svakoj grani se pridružuje težina zadatafunkcijom w : E 7→ Rw – težinska funkcija;(u, v) ∈ E, w(u, v) – težina grane koju u listu susedstva reci usmeštamo sa cvorom v

Nepovoljnost ovakvog predstavljanja – ne postoji mogucnostbrzog ispitivanja da li v ∈Adj[u].

Ovo se prevazilazi predstavljanjem grafa matricom susedstva.

Page 47: Perfektno heširanje Linearno ispitivanje Binarna stabla ...nasport.pmf.ni.ac.rs/materijali/486/PREDAVANJE5-SPA.pdf · Overviev Perfektno heširanje Binarna stabla Grafovski (GRAF)

OvervievPerfektno heširanje

Binarna stablaGrafovski (GRAF) algoritmi

Predstavljanje grafova

Matrica susedstva

Za predstavljanje grafa matricom susedstva – pretpostavka dasu cvorovi numerisani sa 1, 2, . . . , |V| proizvoljnim redom;A – matrica susedstva dimenzije |V| × |V|; A = (aij)

|V|i,j=1

aij =

{

1, (i, j) ∈ E

0, u protivnom

Neophodna memorija – O(|V|2)

Za neusmerene grafove – A = AT;Kod težinskih grafova – težinu grane w(u, v) smestamo u vrstuu i kolonu v matrice susedstvaZa nepostojece grane – NIL, 0 ili ∞.