Professional Documents
Culture Documents
• Kako su vreme rada algoritma i broj koraka direktno proporcionalne veličine, nebitno je
koja će se od ovih veličina koristiti za definisanje kompleksnosti.
• Kompleksnost algoritma definisana je funkcijom f(n) koja određuje vreme rada algoritma
u zavisnosti od dimenzije problema za najnepovoljniji ulazni podatak.
i mnogi drugi
DIJAGRAM- BLOK ŠEMA
• Najčešće, algoritam se predstavlja u obliku blok šeme sa jasno definisanim nizom
radnji, korak po korak.
• Grafički zapis algoritma naziva se algoritamska blok šema.
• Grafički simboli koje se koriste za pravljenje algoritamske šeme su:
Početak
Kraj
• Primer: Sastaviti algoritamsku šemu za izračunavanje izraza Z=a(b-3c)
Početak
a,b,c
Z1=3*c
Z2=b-Z1
Z=a*Z2
Kraj
da uslov ne
• Grafički prikaz razgranate linijske šeme dat je na sledećoj slici.
Početak
P1
da
Uslov P3
ne
P2
Kraj
• Primer:
a b, a b
Sastaviti algoritam za računanje vrednosti Z
a b, a b
• Primer:
a b, a b
Sastaviti algoritam za računanje vrednosti Z
a b, a b
Početak
a,b
da
a<b P=a+b
ne
P=a-b
Kraj
• Ciklične algoritamske šeme su one šeme u kojima se jedan ili više
algoritamskih koraka može izvršavati više od jedanput u toku
izvršavanja algoritma.
• Ovi koraci čine ciklus ili petlju
n 1. Učitati n
P(i)
i 3. vrati se na 2
Kraj
• Primer:
Sastaviti algoritam koji za poznato n izračunava aritmetičku sredinu zadatih brojeva
x1 , x1 , , xn x1 x1 xn
P
n Početak
x1,x2,....,xn,n
da
n=0 P=0
ne
i=1
S=0
S=S+xi
da
i=n P=S/n
ne
i=i+1
P
Kraj
• Primer: Sastaviti algoritam koji za poznato n izračunava sumu
korišćenjem FOR petlje.
n
S i
i 1
Početak
S=0
i=1,n
S=S+i
da
i<n
ne
Kraj
Početak
n
• A WHILE petlje
i=1
S=0
i<n ne
da
S=S+i
i=i+1
Kraj
• Primer:
• Sastaviti algoritam koji za poznato n i x izračunava stepen y xn
Početak
x,n
y=1
da
n=0
ne
n-1=n
y=x.y
y
Kraj
EKVIVALENTNI ALGORITMI
• Za rešavanje jednog istog zadatka može se sastaviti više algoritama
različitih struktura.
• Kako je
f 1 1
f 2 2 1 1 3
f 3 2 3 1 7
f 4 2 7 1 15
f 5 2 15 1 31
f n 2n 1
• Znači, možemo da zaključimo da je
• Dokaz se izvodi matematičkom indukcijom.
1) n 1, f 1 1
•
2) n k , f k 2k 1
3) n k 1, f k 1 2k 1 1?
f k 1 2 f k 1 2 2k 1 1 2 k 1 1
f 0 1 znajući da je a 0 1
f n 1 a f n
• Izračunati f 3
• Kako je
1) a o 1
2) f 3 a f 2 a a f 1 a a a f 0 a a a 1 a 3
Primer:
• Uočimo funkciju f n n !, definisanu na skupu nenegativnih celih brojeva.
n ! n n 1 n 2 2 1
• Funkcija se može zapisati rekurzivno na sledeći način
def
f 0 1 znajući da je 0! 1
f n 1 n 1 f n
• Bitno je napomenuti da u savremenim programskim jezicima poput C/C++ i
Jave svako rekurzivno rešenje nekog problema ima i svoj iterativni
ekvivalent, tj. algoritam koji isti problem rešava bez rekurzije.
• Rekurzivni algoritam zahteva jednu ili više ulaznih veličina, a vraća jednu
sračunatu. Ta vrednost je iz koraka u korak sve bliža željenoj, iskazanoj u
uslovu izlaska.
• Algoritam u sebi sadrži naredbu if koja testira uslov izlaska i naredbu else
kojom se rekurzivno poziva sama funkcija, odnosno algoritam.
Primer:
• Rekurzivni algoritam za izračunavanje stepena
procedura : stepen(a je realan broj , n je nenegativan broj )
if n 0 then stepen a, n 1
else stepen a, n a stepen a, n 1
Primer:
• Rekurzivni algoritam za izračunavanje faktorijela
x1,x2,....,xn,n
da
n=0 P=0
ne
i=1
S=0
S=S+xi
da
i=n P=S/n
ne
i=i+1 P
Kraj
• Primer: Napisati i algoritam za ispis brojeva od 2 do20.
procedura :
for n 2 , n 20
n n2
n
end
• Napisati algoritam za sabiranje dve matrice A i B dimenzija mxn
procedura : Sab( A, B, m, n)
for i 1to m
for j 1to n
cij aij bij
end for
end for
end
ČERČOVA TEZA
• Dakle:
• Rekurzivna funkcija je jedan opšti model algoritma.
TJURINGOVA MAŠINA
•
• Osim Tjuringove mašine postoje i
• fon Nojmanova mašina,
• Prostova mašina, algoritmi Markova,
• mašine Minskog i mnogi drugi formalizmi.