You are on page 1of 19

1.

.(.,,
)
()..
(),.

:,
3
:,,
:,
:Search(S,x),Insert(S,x),Delete(S,x),Minimum(S),Maksimum(S),Sledbenik(S,x),
Prethodnik(S,x)

2.,:,
DELETE
.(LIFO),
(FIFO)
INSERTjePUSH,aDELETEPOP
:n
S[1n].top[S].
S[1..top(S)]S[1],S[top(S)]e..top[S]=0,
.
,top[S]n,.
INSERTjeENQUEUE,aDELETEjeDEQUEUE.
.,,,
.
:n1eQ[1..n].
Redimaatributhead[Q]kojiindeksirael.Nanjegovompoetku,itail[Q]kojiindeksirasledeculokacijunakojuce
bitiumetnutnoviel.Elementiredanalazesenalokacijamahead[Q],head[Q]+1,,tail[Q]1,gdepodrazumevamo
dalokacija1direktnopratilokacijun.Kadajehead[Q]=tail[Q],redjeprazan.Inicijalnojehead[Q]=tail[Q]=1.Kada
jeredprazan,pokusajdaskinemoel.izredadovodidopotkoracenja.Kadajehead[Q]=tail[Q]+1,redjepuni
pokusajdaumetnemoel.dovodidoprekoracenja.
STACK_EMPTY(S)

if(top[S]==0)thenreturnTRUE;
ENQUEUE(Q,x)
returnFALSE;
Q[tail[Q]]:=x;

if(tail[Q]==length[Q])
Push(S,x)
thentail[Q]:=1
top[S]:=top[S]+1;
elsetail[Q]=tail[Q]+1;
S[top[S]]:=x;
DEQUEUE(Q)

x:=Q[head[Q]]
Pop(S)
if(head[Q]==length[Q])thenhead[Q]:=1;
if(STACK_EMPTY(S))thenreturnerror
elsehead[Q]:=head[Q]+1;
potkoracenje
returnx;
top[S]=top[S]1;

returnS[top[S]+1]

3.DVOSTRUKO(JEDNOSTRUKO)POVEZANELISTETRAZENJE,UMETANJE,BRISANJEELEMENATA
Povezanalistajestrukturapodatakaukojojsuobjektiuredjenilinearno,alizarazlikuodnizagdejelinearno
uredjenjeodredjenonizomindeksa,ovdejeuredjenjeodredjenousvakomodobjekata.
Jednostrukopovezanalistajeskupelemenatagdesvakielementimakljucipokazivacnasledecielement.
Dvostrukapovezanalistaimakljucidvapokazivaca.Jedanpokazivacnapredhodnielementijedanpokazivacna
sledecielement.
Trazenjekodpovezanelisteideujednomsmetu,prostomlinearnompretragomivracapokazivacnanjega,akone
postoji,vracaNIL.SlozenostjeO(n).
Umetanjeidenapocetak,akojesortiranalista.PokazivacnalistuusmerimonaNOVI,aNOVI.SLEDECIje
predhodnipocetakliste.SlozenostjeO(1).
Brisanjekodpokazivaca,pokazivacpredhodnogpokazujenasledecielement.SlozenostjeO(n).

4.KORENSKASTABLA,PREDSTAVAPROIZVOLJNOGKORENSKOGSTABLABINARNIMSTABLOM
Korenskostablociniskupcvorovaigranakojepovezujucvorovenaspecijalannacin.Jedancvorjeizdvojen,
predstavljavrhhijerarhijeizovesekorenstabla.Cvorovivezanisacvorovimanivoa1(semkorena)cinenivo2
hijerarhije.
Korenskostablosepretvaraubinarnotakostopovezujemoprvogsinainarednogbrata.

5.BINARNASTABLA:EKSPLICITNOIIMPLICITNOPREDSTAVLJANJE
Stablostepena2zovesebinarnostablo.Cvorubinarnomstablumozedaimanajvisedvasina,levogidesnog.
EKSPLICITNO:Prieksplicitnompredstavljanjusecvorkaksinovapredstavljaslogomcijijedeovektorasak
pokazivacakasinovima;ponekadjedeoslogaipokazivackaocu.Pogodnojedasvicvorovibuduistogtipa(sam
pokazivacagdejemnajvecibrojsinovanekogcvora,tjstepenstabla).Stablostepenavecegoddvamozese
predstavitikoriscenjemsamodvapokazivacajednogkaprvomocuadrugogkanarednombratu.
IMPLICITNO:Zaimplicitnopredstavljanjesenekoristepokazivaci,svicvorovisesmestajuuvektor,avezeizmedju
cvorovsuodredjenjenjihovompozicijomuvektoru.Uvektorusecvorovizapisujuonimredomkojimseprolazis
levaudesno,nivoponivo.

6.HIPREALIZACIJAREDASPRIORITETOMOSNOVNEOPERACIJE
Hipjebinarnotsablokojezadovoljavauslovhipa:kljucsvakogcvoravecijeilijednakodkljucevanjegovihsinova.
Hipsemozerealizovatiimplicitnoieksplicitno.
IMPLICITNO:Akohipimanelemenata,ondasezasmestanjeelemenatahipakoristelokacijeuvektorusa
indeksimaod1don.
BRISANJE:sevrsitakostoseelementA[1]prekopirauA[n],azatisevrednostzanumanjiza1.Zatimje
y=max{A[2],A[3]}akojex>yondajekompletnostablo.Akone,xiymenjajumestairekurzivnosesasmanjenjem
korenaprimenjujepotupak.
UMETANjE:najpresenpovecaza1inaA[n]upisenovkljuc,zatimporedimoA[n]saA[n/2](donjagranica).Ako
jeA[n]vecemenjajuimsemesta,ipostupaksenastavljanavisepremestanjemnovogkljuca.Svedoknebude<=
odkljucaoca(ilidoknedodjemodokorena).
SlozenostjeO(n).

7.BINARNOSTABLOPRETRAGEREALIZACIJARECNIKAOSNOVNEOPERACIJE(TRAZENJE,UMETANJE,BRISANJE)
Ubinarnomstablupretrage(BSP)kljucsvakogcvoravecijeodkljucevasvihcvorovalevogpodstabla,amanjiod
kljucevasvihcvorovadesnogpodstabla.Pretpostavimozbogjednostavnostidasukljucevisvihcvorovarazliciti
BSPomogucavaefikasnoizvrsavanjesledece3operacije.
NADJI(x)Nadjielementsakljucemxustrukturiiliustanovidagatamonema.Brojxuporedjujemosakljucemr,
korenaBSP.Akojex=r=>gotovo,akojer<x(x>r)idemokrozlevo(desno)podstablorekurzivno.

UMETNI(x)Kljuckojitrebaumetnuti,najpresepotraziuBSP,akosenadjeumetanjejegotovo,jerseurecniku
necuvajuponovljenjekopijeistihelemenata.AkosexnenalaziuBSPondaseprilikomtrazenjadoslodolistaili
dojednogcvorabezjednogsina,upravosaonestranegdetrebaumetnutinovicvor.Tadasexumecekaolevi,
odnosnodesnisintogcvoraakojemanji,odnosnoveciodkljucatogcvora.
BRISANjE(x)BrisanjecvoraizBSPkomejekljucjednakzadatombrojujenestokomplikovanijaoperacijaod
predhodnih.Najednostavnijejeobrisatilist.Slicnolakojeobrisatiunutrasnjicvorsasamojednimsinom(cvorse
uklanjaapodstablosepodizezajedannivotakodamukorenbudenamestuobrisanogcvora).Akotrebaukloniti
unutrasnjicvorBsaobasina,mozesenajpreulevompodstablucvoraBpronacinajdesnijicvorx,odnosnocvor
sanajvecimkljucem;njegakopiramoumestocvorakojibrisemoielementbrisemotomozemojerjeonililistili
imasamojednogsina.IstirezultasemozeposticipomocunajlevijegcvoraudesnompodstablucvoraB,njegovog
sledbenika.
Unajgoremslucajuslozenostovihoperacijajeproporcionalnavisinistablaakojestablodonekleuravnostezeno
slozenostjelog2n.

9.HESTABELE,HESFUNKCIJE,KOLIZIJEINjIHOVAOBRADA
Akosmestamoelementesakljucevimaizopsega1don,anaraspolaganjunamjevektroduzinen,ondapodatak
sakljucemismestamonapozicijui,i=1,2...n.Aliakosubrojeviizopsega1doM,gdejeMvleiko,ondaotpada
idejasasmestanjemuvektrovelicineM.AkonamjedatonkljucevazskupaU:|U|=M>>n,idejajedaih
smestimoutabeluvelicinem,takodamnijemnogoveceodn.
Dabiovopostiglitrebadadefinisemohesfunkcijukojaslika{0,1,...,M1}u{0.1,...,m1}.Akomnijeodvoljnoveliko
dolazicedokolizijapojavadarazlicitimkljucevimaodgovarajuistelokacije.Obziromdasuoneneizbezne,
namecuse2problemazaresavanje:
nalazenjehesfjakojeminimizirajuverovatnocupojavekolizija
obradakolizijakadadonjihdodje
Dobrahesfjatrebadatransformiseskupkljucevaravnomernouskupslucajnihlokacijaiz{0,...,m1}.
Obradakolizija:
ODVOJENONIZANJE:Svakielementhestabelejepokazivacnalistukojasadrzisvekljucevekojisusmesteninatu
lokacijuutabeli;mane:akojelistaduga,dinamickaalokacijamemorije.
LINEARNOPOPUNJAVANJE:akojelokacijah(x)zauzeta,elementiseupisujunalokacijuh(x)+1modm;mane:
sekundarnakolizijatj.efekatgrupisanja.
DVOSTRUKOHESIRANJE:kaddodjedokolizijepriupisux,h(x)=i,racunasevrednostdrugehesfjeh2(x)ixse
smestana1.sledecupozicijumedjulokacijamai+h2(x)modm,i+2h2(x)modm.Vaznojedavrednosth2(x)budu
uzajamnoprostesam!

10.GRAFOVIPREDTSAVLJANJE:MATRICAPOVEZANOSTI,LISTAPOVEZANOSTI
GrafG=(V,E)jeuredjeniparskupacvorovaViskupgranaE.Kodusmerenoggrafabitanjeredosledcvorovau
granitj.granesuuredjeniparovicvorova,doksukodneusmerenoggrafagraneneuredjeniparovicvorova.
Tezinskigrafjegrafkodkogajesvakojodgranapridruzennekirealanbroj,nazivamogatezinomgrane.
StepencvoraV(uoznacid(V))jebrojgranakojesususednecvoruV(tj.brojgranakojesudirektnopovezujucvor
Vsanekimdrugimcvorom).
Kodusmereneoggrafarzlikujemoulaznistepen(brojgranakodkojihjecvorVkraj)iizlaznistepen(brojgranakod
kojihjecvorVpocetak).
PutodV1doVkjenizcvorovaV1,...,VktakodazasvakadvauzastopnacvoraVi1,Vipostojiodgovarajucagrana(Vi1,
Vi).
Putjeprostakosesvakicvorpojavljujeunjemusamojednom.
Postoje2nacinazapredstavljanjegrafova:

MATRICAPOVEZANOSTI:jekvadratnamatricaA,redanMukojojjeA(i,j)=1,akopostojigranaodcvoraVido
cvoraVj,aA(i,j)=0inace.AkojegrafneusmerenmatricajesimetricnaakojebrojgranauGmali,grafjeredak,tj.
vecinaelemenatabicenula,amatricaceidaljezauzimatiprostornxnstojevelikinedostatakovogtipa
reprezentacije.
LISTOMPOVEZANOSTI:omogucujesedasenavrsieksplicitnopredstavljanjenepostojecihgrana.Svakomcvoru
pridruzujesepovezanalistakojasadrzisvegranekasusednimcvorovima.Svakielementlistesadrziindekscvora
gravaGipokazivacnanjegovulistususednihcvorova.AkojeGstatickigraf(nisudozvoljenabrisanjaiumetanja)
ondasezarealizacijulistepovezanostikoristinizduzine|V|+|E|gdesuprvih|V|elemenatapridruzeni
cvorovimagrafavrednostnapozicijijpridruzenacvoruVjsadrziindekspocetkaspriskacvorovasusednihcvoruVj.

11.SORTIRANJEOBJEDINJAVANJEM
Dvasortirananizaseobjedinjujuusortiraninizjednimprolazomtakostosebrojeviizdrugognizarazmatraju
redom.prvosetrazimestozanajmanjibrojpazasledeciitd.Postosubrojeviudrugomnizusortiraninema
potrebezavracanjeuprvomnizu.Ukupanbrojuporedjivanjejeunajgoremslucajujednakzbiruduzina2niza.
Problemsupremestanjajerjeneefikasnopremestatielementeprisvakomumetanju,umestotogaelelmente
kopiramouprivremeninizsvakielementsekopiratacnojednom.
UkupnojepotrebnoO(n+m)uporedjivanjanpremestanjazaobjedinjavanjedvasortirananizaduzinen+m.
Ovosekoristizaalgoritamsortiranjazasnovannadekompozicijitakostosenizpodelinadvadelaitidelovise
rekurzivnosortiraju.
SlozenostjeO(nlogn).

12.SORTIRANJEPOMOCUHIPA(HIPSORT)
NjegovaefikasnostjezagarantovanaislozenostunajgoremslucajuiznosiO(nlogn).Hipsortjealgoritam
sortiranjaumestu.
PretpostavimodasehippredstavljaimplicitnotjdasunejgovielementismesteniuvektorAduzinen.Algoritam
hipsortizvrsavasesl.nacin:
najpreseelementinizapreuredjujutakodacinehip
zamenomA[1]saA[n]postizesedaA[n]sadrzinajvecielementniza,zatimserazmatranizA[1]...A[n1]i
preuredjutakodaidaljezadovoljavauslovhipa(problemjejedimoelementA[1])nakontogapostupakse
nastavljarekurzivno.
Znacialgoritamsesastojiodpocetnogformiranjahipain1korakaukojimasevrsipojednazamenai
preuredjivanjehipa.SlozenostjeO(nlogn)+slozenostformiranjahipa.

13.BRZOSORTIRANJE(QUICKSORT)
Predpostavimodaznamoelementxtakodajepolaelementaniza<=apola>odx.Brojxporedimosaovim
elementomnizaitimeihdelimoudvegrupekojeimajuistibrojelemenata.Ovorazdvanjanjenadvepolovine
nizamozeseisvrsitibezdodatnogmemorijskogprostoraazatimseobanizarekurzivnsortiraju.
xnazivamopivotomipokazujesedaalgoritamdobroradibezobziranatokojiseelementkoristikaopivot.
Razdvajanjesevrsinasledecinacin:
KoristimodvapokazivacaLiD,LstartnopokazujenaleviaDnadesnikrajniza.Pokazivacisepomerajujedanka
drugomtakodavazipivot>=xizasvei<Lipivot>xjzasvej>D,kadadodjemodoxL>pivotixD>=pivotmenjamoxL
saxDipomeramoobapokazivacapremaunutra.pokazivaciceseujednomtrenususresti.
Izborpivota:akojepolazninizdobroispreturan,zapivotasemozeuzetijedanelementniza.Ondaseonu
poslednjemkorakumenjasaxLitakosepostavljanasvojemesto.

14.SORTIRANJESLOZENOSTIO(n),DONJAGRANICASLOZENOSTISORTIRANJAKADSEKORISTE
UPOREDJIVANJA
Nekajedatonelemenata,kojisucelibrojeviizopsegaod1dom>=n.Rezervixesemlokacija,aondasezasvako
ibrojxistavljanalokacijuxikojaodgovaranjegovojvrednosti.Posletogasepregledajusvelokacijeiiznjihse
redompokupeelementi.SlozenostovogjednostavnogalgoritmajedakleO(m+n).Akojem=O(n),dobijamo
algoritamzasortiranjelinerneslozenosti.Sdrugestrane,akojemvelikouodnosunan,ondajeiO(m)takodje
veliko.Poredtoga,algoritamzahtevamemorijuvelicineO(m),stojejosveciproblemzavelikem.
PotrebnojenkorakazakopiranjeelemenatauglobalnulistuGL,idkorakazainicijalizacijulistaQ[i].Uglavnoj
petljialgoritma,kojaseizvrsavakputa,svakielemenatsevadiizglobalneistavljaunekuodlistaQ[i].Nakrajuse
svelisteQ[i]ponovoobjedinjavajuuGL.UkupnavremenskaslozenostalgoritmajeO(n).

15.PRETRAGAGRAFOVAUDUBINU(DOKAZISPRAVNOSTI,DFSSTABLO,NUMERACIJECVOROVA,
KOMPONENTEPOVEZANOSTI)

NEUSMERNIGRAF:
Krecemoizproizvoljnogcvorarkorenapretrageikorenoznacavamokaoposecen.Zatimbiramoproizvoljan
cvorr1susedansar,paseizcvorar1rekurzivnostertujepretraga.Iznekognivoarekurzijeseizlazikadasenaidje
nacvorVkomesusvisusedi(akoihima)vecoznaceni.
Dabiserazliciteaplikacijeuklopileupretraguudubinu,poseticvorailigranepridruzujusedvevrsteobrade
ulaznaiizlazna.Ulaznaobradavrsiseutrenutkuoznacavanjacvora,aizlaznaposlepovratkanekomgranomili
kadaseotkrijedanekagranavodivecoznacenomcvoru.
Postoje2vrsteDFSnumeracije:
dolaznapremaredosleduoznacavanja
odlaznapremaredosledunapustanjacvorova
RedosledsinovasvakogcvoraustabludatjelistompovezanoggrafaG,pasezasvakadvamozerecikojidnjihje
levi(prvipotomredosledu)akojidesni.Relacijaseprenosiinaostalecvorove.
GranegrafanemogubitipoprecnegranezaDFSstablo(tj.granekojepovezuju2cvorauivtakodajena
naprimerulevoodv).
USMERENIGRAF:
ProcedurajeistakoikodneusmerenihgrafovamedjutimusmerenaDFSstablaimajudrugacijeosobinezanjih
nevazidanemajupoprecnegrane.
Granegrafadelimona:granestable
povratne
direktne
poprecnejedinenepovezujusrodnikeimorajubitiusmerenezdesnaulevo
KadgovorimooDFSuusmerenoggrafasmatracemodajeDFSpomenuttolikoputakolikojepotrebnodabisvi
cvororvibilioznacenitj.umestoDFSstablauopstemslucajuimamoDFSsumu.

17.PRETRAGAUSIRINU,BFSSTABLO,OSOBINE
BFSjeobilazakgrafanivoponivo.PolazimoodcvoraV,prvoobilazimosvesusedecvoraVsvudecu,zatimunukei
takodalje.PrilikomobilaskacvorovisemogunumerisatiBFSbrojevimatakodacvorwimaBFSbrojk;akojekti
oznacencvoruBFSu.
BFSstabloseformiraukljucivanjemsamogranakanovooznacenimcvorovima.
Nivocvorawjeduzinaputaustabluodkorenaodw.

17.Pretragagrafausirinu:BFSstablo,osobine
BFSjeobilazakgrafanivoponivo.Polazimoodcvorav,prvoobilazimosvesusedecvoravsvudecu,zatimunuke
itd.PrilikomobilaskacvorovisemogunumerisatiBFSbrojevimatakodacvorwimaBFSbrojk,akojektioznacen
cvoruBFSu.BFSstabloseformiraukljucivanjemsamogranakanovooznacenimcvorovima.
Nivocvorawjeduzinaputaustabluodkorenadow.
SlozenostjekaoikodDFSalgoritma,O(|V|+|E|).AkoseBFSstartujenagrafuzadatommatricompovezanosti,
potragazasusedomjeslozenostiO(|V|2),pajeukupnovremeizvrsavanja:O(|V|2+|V|)
DijametarstablaT=(V,E)je
, gdeje
, duzinaputaodcvoraudocvoravustablu.
,

18.ANALIZAALGORITAMAOSNOVNIPOJMOVI(APROKSIMATIVNAASIMPTOTSKAANALIZANAJGOREG
SLUCAJA;ASIMPTOTSKEOZNAKEO,o,,;VREMENSKAIPROSTORNASLOZENOSTALGORITMA)
ANALIZAALGORITMA:
Ciljanalizealgoritmajedasepredvidinjegovoponasanje,presvegabrzinaizvrsavanja,nerealizujucigana
nekomkonkretonomracunaruitotakodaprocenavazizasvakiracunar.
Brzinaizvrsavanjaaloritmanarazlicitimracunarimarazlikujesezapribliznokonstantanfaktortejelogicanpristup
zanemaritikonstantnefaktore.
Kadavrsimoanalizuvremena,izvrsavanjazaodredjeniulazuanaliziseodnjegovihkarakteristikakoristisamo
njegovavelicinan.Dakleanalizaalgoritmatrebadakaorezultatdaizrazzautroseneovremeuzavisnostiodn.
Medjutim,kojimedjuulazimavelicinenizabratikaoreprezentativan.Kaonajboljiizborpokazaoseizbornajgoreg
slucaja(najboljijecestotrivijalan,asrednjijeteskodefinisati).

OZNAKEO,,,o
def.:NekasufigpozitivnefjeodargumenatanizskupaN.Kazemodajeg(n)=O(f(n))akopostojepozitivne
konstanteiciNtakodazasvakon>=Nvazi:
g(n)<=c*f(n)
OznakaO(f(n))seustvariodnosinaklasufjaajednakostg(n)=O(f(n))jeoznakazainkluzijug(n)O(f(n)).
OvimdobijamodamozemozanemarivatimultiplikativnekonstantetjO(3n+2)pisemokaoO(n);osnova
logaritmanijebitnajerjelogan=loga(blogbn)=logbn*logab(logabjekonstanta).
O(1)jeoznakazaklasuogranicenihfja.
Vazi:O(f(n))+O(g(n))=O(f(n)+g(n))
O(f(n))*O(g(n))=O(f(n)*g(n))
Drugibitanproblemuvezisaslozenoscujeispitivanjeodnjegranicezabrojracunskihoperacija.
def:Zafjuf(n)kazemodajeasimptotskadonajgranicafjet(n)ipisemot(n)=g(n)akopostojekonstantec>0,
N>0takodajezasvakon>=Nvazi:
T(n)>c*g(n)
Akozadvefjeistovremenovaziif(n)=O(g(n))if(n)=g(n),ondapisemo

f(n)=g(n)

def:Akovazilim(n>)f(n)/g(n)=0,pisemof(n)=O(g(n)).

Obziromdasvakaeksponencijalnafjasaosnovom>1rastebrzeodsvakogpolinoma,vazi:f(n)c=O(af(n))za
svakumonotonorastucufjuf(n)ia>1,c>0.
Specijalnodobijamo:nc=O(an)(logan)c=O(n)

19.Primerisumiranja
a)
1

2
dokazindukcijom
1,

1 2

2
2

b)
1

1
1

c)
2

1 2
1
1

1
1

,
1 2

1
1
1

1
1

2
2

2
2
1 2
2
2

20.Resavanjelinearnihrekurentnihrelacija.
Akozaclanoveniza ,
1,2, vazijednakost
,
, , , ondasekazedaniz zadovoljava
gornjurekurentnurelaciju(ilidiferencnujnu)
Specijalno,akosezanekok>1clan izrazavaprekokprethodnihclanovaniza,tj.
,
,,
,
ondajekredtediferencnejednacine.Pokazujesedajegornjimdiferencnomjnomisaprvihkclanovaniza,niz
jednoznacnoodredjen.

Jednacineoblika
1
Resenjasetrazenasl.nacin:Resavamojnu
karakteristicnomjnomdif.jne.
Akosusvaresenjarealnairazlicita,resenjeje:

nazivajusehomogenelinearnedif.jne.
0kojunazivamo

Akosuresenja , , visestrukosti

,,

ondasuresenjaoblika:

21.Rekurentnarelacija.masterteorema
Uslucajukadaseobradaulazavelicinensvodinaaobradaulazavelicinen/bipotrebnojeizvrsitijos
jnaizgledaovako:
,

, , ,

,
log

0,

koraka,

,
(prosecna
22.Rekurentnerelacijesapotpunomistorijom;primer
slozenostalgoritmaquicksort).
Ovosudif.jnenajopstijegoblika

Primer:
,
2
Idejajeeliminacijaistorijeinalazenjeodgovarajucejnesakonacnomistorijom
1
,
2
1
2
2
2
1
1
2
2

23.Algoritmigrubesile(najveciclanniza,dvenajblizetackeuravni,problemtrgovackogputnika)
NistapametnoPronalazesesvamogucaresenjakonkretnogproblema
a) najveciclanniza:Pretpostavimodanamjeprvielementmaksimum,iporedimogasasvimostalim
elementima.Akopronadjemoveci,uzmemodanamjemaximumtajnovivecielement.
b) Dvenajblizetackeuravni:
,
,
,
,
,,

Imamoparove
Trazimoi,jtakodad(Pi,Pj)<d(Pr,Ps),r,s=1,,nrs
Poredimorastojanjaizmedjusvakedvetackeudvostrukojforpetlji.SlozenostO(n2).

24.(greedy):.

,.
Sn,
.
sifi().
().

.
,ijSi.j
..

,
.
.,.
.,
.,
.
O(n).

25.(greedy):.
,
(),
.
().
:
(=/).
.
,
.,,
.
,,.

26.()
.
.

.
.
,6
3..
.
.
.
.
.0
,1.

.
1.
nc
f[c],.
.
..

..
O(nlgn).(lgn)
(n).

27.Devide&Conquer:Binarnapretragaivarijacije
.Zadatirealanbrojztrebaustanovitidali
Datnamjenizrealnihbrojeva , , takodaje

sezjavljaunizu,akosejavljatrebanaciindeks :
Idejajedazporedimosa
iakoje
ondazmozebitisamouprvojpolovininiza,inacesamoudrugoj.
Pronalazenjezuprvojilidrugojpolovinijeproblemvelicinen/2kojiseresavarekurzivno.Slucajn=1resavase
direktnodirektnimporedjenjemzsaelementom.Slozenostje log jerseusvakomkorakuopsegmogucih
indeksasvodinapola.
Pretraganizanepoznateduzine:
Trazimozadatibrojzuuredjenomnizunepoznateduzine.Dabismoproblemsvelinavecresen,potrebnojenaci
itadasemozeprecinabinarnupretraguopsegaindeksaod1doi.
bar1index :

28.Devide&Conquer:Istovremenotrazenjenajmanjeginajvecegclananiza
Podelimoskupnadvapodskupasajednakimbrojemelemenata.Resivsirekurzivnoobapotproblemadobijamo
dvaminimalna(m1im2)idvamaksimalnaelementa(M1iM2).Makslimalniel.upolaznomskupujemax{M1,M2},a
min.el.jemin{m1,m2},tj.zaobjedinjavanjedvaresenjadovoljnasu2uporedjivanja.
2
2
2
2

2
2 2
2 2
3 2
3
2
2

2,

2
2

3 2

29.Devide&Conquer:Problemselekcijenalazenjektognajmanjegclananiza.
Idejajeprimenitidekompozicijunaistinacinkaoikodsortiranjarazdvajanjem,semstojeovogputadovoljno
resitisamo1od2potproblema.Dovoljnojeodreditikojiodpodnizovasadrziktinajmanjielement,aonda
algoritamprimenitirekurzivnosamonatajpodniz.Prosecnaslozenostovogalg.semozeocenitisaO(n).
.
30.Devide&Conquer:Mnozenjepolinoma,brojevaslozenosti

i
kojisustepenan1.Ciljjeizracunatinjihovproizvod.Akobismo
Datisupolinomi
proizvodPQracunalidirektnimmnozenjemclanova,slozenostbibila

Poboljsanje:

;
;
;
B+Cnamnetrebajupojedinacno,vecsamouformiB+C.Akoje
=>dovoljnojeizracunati3proizvodapolinomastepenan/21
Slozenost:
3,
2,

3
1
)

31.Devide&Conquer:Shtrasenovalgoritamzamnozenjematrica
Namnozenjematricasemozeprimenitipostupakdekompozicije.Pretpostavimodajenstependvojke:
,

, , , , , , ,

2 2
Proizvodblokmatricadobijasenaistinacinkaokadaseblokovizameneelementima,paseproblemmozesvesti
natrazenjeefikasnognacinazamnozenje2x2matrica.
Obicanalgoritamzamnozenjekoristi8mnozenja:

.Kombinovanjemanjihresenjakoristi

nekolikosabiranjamatricadimenzijen/2=>slozenostje

a=8,b=2,k=2;
Strasenjedosaodotogadajedovoljno7mnozenja:

,
,
,
,
,

Strasenoovalgoritamima3vaznanedostatka:
1. Prakticneproverepokazujudanmoradabude>100dabiStrasenovalgoritambiobrziodobicnog
mnozenjamatricaslozenostiO n
2. Strasenovalgoritammanjejestabilanodobicnog.Zaistevelicinegreskeulaznihpodataka,Strasenov
algoritamobicnodovodidovecihgresakauizlaznimpodacima.
3. Strasenovalgoritamjekomplikovanijiitezizarealizacijuodobicnog.Poredtoga,njeganijelako
paralelizovati.

32.Devide&Conquer:Nalazenjedvenajblizetackeuravni
Umestodarazmatramotackejednupojednu,mozemodaskuptacakapodelimonadvajednakadela.Induktivna
hipotezaostajenepromenjena,izuzevstoproblemsvodimonenajedanproblemsan1tackom,negonadva
problemasan/2tacaka.Zbogjednostavnostipretpostavimodajenstependvojke,takodajeskupuvekmoguce
podelitinadvajednakadela.Postojivisenacinadaseskuppodelinadvajednakadela.Biramonacinkojinajvise
odgovaranasimciljevima.Volelibismodadobijemostovisekorisnihinformacijaizresenjamanjihproblema,
odnosnodastovecideotihinformacijavaziizakompletanproblem.Izgledarazumnodaseskuppodelinadva
delapodelomravninadvadisjunktnadela,takodasvakiodnjihsadrzipolovinutacaka.Postosepronadju
najmanjarastojanjausvakomdelu,trebarazmotritisamorastojanjaizmedjutacakabliskihgraniciskupova.
Najjednostavnijinacinpodelejesortiratitackeprema(naprimer)xkoordinatamaipodelitiravanpravom
paralelnomsayosom,kojadeliskupnadvajednakadela,videtisliku12(akovisetacakalezinapravojpodele,
tackesemogunaproizvoljannacinrazdelitiizmezuskupova).Nacinpodeleizabranjetakodasemaksimalno
pojednostaviobjedinjavanjeresenjamanjihproblema.Sortiranjetrebaizvrsitisamojednom.

Zbogjednostavnostiogranicicemosenanalazenjevrednostinajmanjegrastojanjaizmedjutacaka(aneipara
tacakazakojeseonodostize).Pronalazenjedvenajblizetackeizvodiseminimalnomdoradomalgoritma.Nekaje
Pskuptaqakainekajenstependvojke.NajpreseskupPdelinadvaistobrojnapodskupaP1iP2naopisaninacin.
Najmanjerastojanjeusvakompodskupupronalazisenaosnovuinduktivnehipoteze.Nekajed1minimalno
rastojanjeuP1,ad2minimalnorastojanjeuP2.Bezsmanjenjaopstostimozesepretpostavitidajed1d2.
Potrebnojepronacinajmanjerastojanjeucelomskupu,odnosnoustanovitidaliuP1postojitackanarastojanju
manjemodd1odneketaqkeuP2.Primetimonajpredajedovoljnorazmatratitackeutracisirine2d1,
simetriqnojuodnosunapravupodele(videtisliku12).Ostaletackenemogubitinarastojanjumanjemodd1od
neketackeizdrugogpodskupa.Naosnovuovogzapazanjaobicnoseizrazmatranjaeliminisevelikibrojtacaka.
Medjutim,unajgoremslucajusvetackemogubitiutraci,panemozemodasebipriustimoprimenutrivijalnog
algoritmananjih.
Drugomanjeociglednozapazanjejedazaproizvoljnutackuputracipostojisamomalibrojtacakausuprotnoj

tracicijerastojanjeodpmozebitimanjeodd1.Iskoristicemocinjenicudaje

0.7.Nekajesaypoznacenay

koordinatatackep.Konstruiximopravougaonikvisine2,1d
2d usuprotnojtraci
2d isirine1,4d
(videtisliku13),takodanalezenapravupodeleidamujeykoordinatapresekadijagonalajednakayp.Podelimo
gajednomvertikalnompravomisadvehorizontalnepravenasestjednakihkvadratastranice0,7d (kojimaje
dijagonalama_aodd1!).Usvakomodmalihkvadratamozesenacinajvisejednatacka,jerjerastojanjebilokoje
dvetackeukvadratumanjeodd1.Svetackeudrugompodskupu,sarastojanjemodpmanjimodd1,ociglednose
morajunalazitiupravougaoniku.Dakle,udrugompodskupusemozenalazitinajvisesesttacakanarastojanjuod
pmanjemodd1:taqkakandidatsaykoordinatomyqmoradazadovoljiiuslov y
d pasemoranalaziti
y
ujednomod6kvadrata.Prematome,akosvetackeutracisortiramopremaykoordinatamaipregledamoihtim
redom,dovoljnojedazasvakutackuproverimorastojanjeosamsusedausuprotnojtraci,cetiriispodicetiriiznad
(aneodsvihn1tacakaunajgoremslucaju).Skicaalgoritma
datajenaslici14.

AlgoritamNajblizipar1(p1;p2;:::;pn);
Ulaz:p1;p2;;pn(skuptacakauravni).
Izlaz:d(rastojanjeizmedjudvenajblizetackeskupa).
begin
Sortiratitaqkepremaxkoordinatama;

{ovosortiranjeizvrsavasesamojednom,napocetku}
Podelitiskupnadvaistobrojnapodskupa;
Rekurzivnoizraqunatiminimalnorastojanjeuobapodskupa;
Nekajedmanjeoddvaminimalnarastojanja;
Eliminisatitackekojesunarastojanjuvecemoddodpravepodele;
Sortiratipreostaletackepremaykoordinatama;
Zapreostaletaqkeproveritinjihovarastojanjaod4prethodnei4narednetaqkeizsuprotnetrake;
{dovoljnojeproveritiisamo4prethodnetacke!}
ifnekoodovihrastojanjajemajeoddthen
popravitid
end

33.():
(8x8),
.
,,
,,.(
,).
nnxn.
92.(
),12.
n:
i,i,
.,.
n,(,
,(n
,,n1..)).
.
i+1,i,
.

34.():
n2n(
).
,Pn
.
:
.
,().
,,(
).
,mP,
Pm,m,
(Pm).
P,m,
P,m.

35.():3
3,
.,
.
.n
3n.
3:
,(),
.
,.(
),,(
)..
,,
().,
.

36.:
,,
.(3).
3,,
(
),.
,3.,3
.,,
,.
3,
,
(,
)..
.,
k.,k+1,
,,.,k
.
.,
.

38.,
S=s1,s2,...,sn,P=p1,p2,...,pm,
,.

.s1(s1=p1,s2=p2...).
,s2(s2=p1,s3=p2...),
(),
snm+1().
(,)
O(nm)(n,m).
,
(si=pj,si+1=pj).

(,,),
.,,
(
,
).(),
().
,O(n).
(39.)

39.
(1:()
,)
(2:,
)

P=p1,p2,...,pm,T:
t1=1,t2=0()
tiot1,ti1.
:
P
T1001120123
:
S,P,T,S[m],
.,S[m+i]
P[i],m+iT[i].,
,
P[T[i]].:
algorithmkmp_search:
input:
anarrayofcharacters,S()
anarrayofcharacters,W()
output:
aninteger(S(0))

definevariables:
aninteger,m0()
aninteger,i0(W)
anarrayofintegers,T()

whilem+iislessthanthelengthofS,do:
ifW[i]=S[m+i],
letii+1
ifiequalsthelengthofW,
returnm
otherwise,
letmm+iT[i],

ifi>0,
letiT[i]

(,)
returnthelengthofS

40.:()
n,
nn.
:

M:
;
;
;;

b0M.
,:

bi,

41.:
,
,,
odnparova(tacka,vrednost),takodasusvevrednosti
,
,
,
Zasvakiskup
razlicite,postojijedninstvenpolinomA(x)stepenantakodaje
,
0,1, ,
1
Algoritamzainterpolaciju

42.:(,,
).
,
x,f(x)=0,f.,
,(?).

.,,
a,,b.c,
ab,f(c)=0().
:ab(a+b)/2,
.,.
c>0,a>0(b<0),bc(
).
,(
).

xn+1=xn(xnxn1)/(f(xn)f(xn1))*f(xn)(
).
,.(x0x1),
,.()(x0,f(x0))(x1,f(x1)),
x2,x.(
),x1,x2,x3.x2x3x4,
.

,x0,..
,x.x1.x1,
x.,.

43.,n!,

(e).,,
,.
,().,
.
,.
.
..
:
intfakRekurzivno(intn){

if(n==0)/*slucajevikadjen0ili1*/
return1;
if(n==1)
return1;

returnn*fakRekurzivno(n1);/*usuprotnom,rekurzivnoracunamo*/
}

:
intfakIterativno(intn){

intfak=1;/*pomocnapromenljiva*/

while(n>1){
fak=fak*n
n;/*nnamujednosluziikaobrojacikaocinilacumnozenju*/
}
returnfak;
}

while.

,
,.
:
intfibRekurzivno(intn){/*uobaslucaja,uzimamodanizpocinjeod1,neod0*/

if(n==1)
return1;
if(n==2)
return2;

returnfibRekurzivno(n1)+fibRekurzivno(n2);
}

:
intfibIterativno(intn){
intprvi=1;
intdrugi=1;
inti,swap;/*pomocnapromenljiva*/

for(i=2;i<n;i++){/*ukolikojenjednako1ili2,neulazimoupetlju,vecvracamo1,podefiniciji*/
swap=prvi+drugi;/*naredniclanizracunavamoistavljamoupomocnupromenljivu*/
prvi=drugi;/*prethodnivecipostajemanji*/
drugi=swap;/*anaredniclanpostajeveci*/
}
returndrugi;
}

INDEX
1. Elementarne strukture podataka. 1
2. Stek, red: osnovne operacije, realizacija pomocu niza. ..1
3. Dvostruko (jednostruko) povezane liste - trazenje, umetanje, brisanje elementa. 2
4. Korenska stabla, predstava proizvoljnog korenskog stabla binarnim stablom. .2
5. Binarna stabla: eksplicitno i implicitno predstavljanje. .2
6. Hip - realizacija reda sa prioritetom - osnovne operacije..2
7. Binarno stablo pretrage - realizacija reqnika - osnovne operacije (trazenje,umetanje,brisanje elementa)..2,3
8. Binarno stablo pretrage - prethodnik, sledbenik elementa.3
9. Hesh tabele, hesh funkcije, kolizije i njihova obrada./
10. Grafovi - predstavljanje: matrica povezanosti, lista povezanosti.3,4
11. Sortiranje objedinjavanjem.4
12. Sortiranje pomocu hipa (hip sort)..4
13. Brzo sortiranje (kvik sort).4
14. Sortiranje slozenosti O(n), donja granica slozenosti sortiranja kad se koriste uporedjivanja.5
15. Pretraga grafa u dubinu (dokaz ispravnosti, DFS stablo, numeracija cvorova, komponente povezanosti).5
16. Klasifikacija grana grafa u odnosu na DFS stablo, kriterijum za prepoznavanje povratne grane./
17. Pretraga grafa u sirinu, BFS stablo, osobine.5,6
18. Analiza algoritama - osnovni pojmovi (aproksimativana asimptotska analiza najgoreg slucaja; asimptotske
oznake O, o, Omega, Teta; vremenska i prostorna slozenost algoritma) 6,7
19. Primeri sumiranja.7
20. Resavanje linearnih rekurentnih relacija.7,8
21. Rekurentna relacija T(n) = aT (n=b) + cnk koja opisuje algoritme zasnovane na razlaganju8
22. Rekurentne relacije sa potpunom istorijom; primer.8
23. Algoritmi grube sile (najveci clan niza, dve najblize tacke u ravni, problem trgovaqkog putnika).8
24. Pohlepni (greedy) algoritmi: problem izbora aktivnosti.8,9
25. Pohlepni (greedy) algoritmi: razlomljeni problem ranca.9
26. Pohlepni (greedy) algoritmi: optimalni prefiksni (Hofmanov) kod.9
27. Rexavanje problema razlaganjem (divide-and-conquer): binarna pretraga i varijante.10
28. Rexavanje problema razlaganjem (divide-and-conquer): istovremeno trazenje najmanjeg i najveceg clana
niza. 10
29. Rexavanje problema razlaganjem (divide-and-conquer): problem selekcije - nalazenje k-tog najmanjeg clana
niza.10
30. Rexavanje problema razlaganjem (divide-and-conquer): mnozenje polinoma, brojeva slozenosti O(nlog2 3).10
31. Rexavanje problema razlaganjem (divide-and-conquer): Strasenov algoritam za mnozenje matrica10,11
32. Rexavanje problema razlaganjem (divide-and-conquer): nalazenje dve najblize tacke u ravni.11,12,13
33. Pretraga (backtracking): problem 8 dama13
34. Pretraga (backtracking): trazenje podskupa brojeva sa zadatim zbirom.13
35. Pretraga (backtracking): 3-bojenje14
36. Ogranicavajuce funkcije za pretragu: bojenje grafa minimalnim brojem boja.14
37. Ograniqavajuce funkcije za pretragu: trazeze podskupa sa zadatom sumom, koriscenje razlomljnog problema
ranca./
38. Trazenje uzorka u tekstu - naivni algoritam, algoritam KMP14,15
39. Trazenje uzorka u tekstu - izracunavanje pomocnog niza za algoritam KMP.15
40. Numericki algoritmi: izraqunavanje vrednosti polinoma (Hornerova sema).16
41. Numericki algoritmi: Lagranzov interpolacioni polinom16
42. Numeriqki algoritmi: priblizno rexavanje jednacina (polovljenje intervala, metod secice, metod tangente).16,17
43. Svodjenje rekurzije na iteraciju - repna rekuzija, n!, Fibonaqijev niz17,18