You are on page 1of 27

Dizajn i analiza algoritama

Lekcija 1: Uvod
leto 2014/2015

Prof. dr Branimir M. Trenki

O meni....
Branimir M. Trenki
Doktor tehnikih nauka, oblast raunarske i
telekomunikacione mree
Redovni profesor Fakulteta za kompjuterske nauke
Megatrend Univerziteta
e-mail: btrenkic@megatrend.edu.rs
trenkic.branimir@gmail.com
Molim da subject- linija Vaeg e-mail-a poinje sa
kodom kursa (DAA)

O kursu....

Obim: 2 + 2

Termini:

Predavanja: ponedeljak 17:00 19:00, KL2


Vebe: petak 17:00 19:00, KL2

Okosnica kursa:
1. Prirodni nastavak SPA kursa
2. Dizajn i analiza algoritama (kroz primere)

Nain polaganja:

Aktivnost na predavanjima
Odbrana vebi
Teorija: 2 kolokvijuma + Zavrni (pismeni) ispit
Prvi ispitni rok mogue parcijalno polaganje!

Osnovni materijal kursa


Dejan ivkovi
Uvod u algoritme i strukture podataka
Beograd, 2010
Poglavlja: 1, 2, 3, 5 i odeljak 4.2

Prezentacije predavanja (pdf format)


(Obavezna distribucija svim polaznicima kursa!)

Uvod
Niklaus Wirth:

Algoritami i strukture podataka fundamentalni


predmet izuavanja u raunarstvu
Raunarski sistemi, u sutini:
Smetanje podataka u memoriji raunara
Manipulacija podacima iz memorije

Uvod
U najoptijem smislu,
Struktura podataka termin koji opisuje nain
organizacije odreenih podataka u programu
Algoritam postupak obrade podataka
Strukture podataka + Algoritmi tesno
povezani gradivni elementi od kojih se sastoji
program
FKN 2 predmeta
1. Strukture podataka i algoritmi
2. Dizajn i analiza algoritama

Algoritmi
Koriste se za reavanje raunarskih problema i
u tesnoj su vezi sa strukturama podataka u tom
kontekstu
Proces reavanja raunarskog problema:

ta se podrazumeva pod raunarskim


problemom?

Algoritmi zadavanje problema


Da bi se proces reavanja raunarskog problema
mogao uspeno okonati - problem mora biti
precizno definisan (zadat)
To je mogue uraditi na dva naina:
1. Preciznom specifikacijom ulazno-izlaznog
odnosa (koji odslikava prirodu samog problema)
2. U optem sluaju koristi se formalniji
(matematiki) aparat kako bi se otklonila
svaka dvosmislenost

Algoritmi zadavanje problema


A) Preciznom specifikacijom ulazno-izlaznog
odnosa kojim se izraava priroda problema
Problem sortiranja niza brojeva

Ulaz niz brojeva u proizvoljnom redosledu


Izlaz niz istih brojeva poreanih u rastui
redosled

Problem usitnjavanja novanog iznosa

Ulaz novani iznos i apoeni metalnih novia


Izlaz minimalni broj tih novia kojima je mogue
usitniti dati novani iznos

Algoritmi zadavanje problema

Kod mnogih problema nije dovoljno na ovaj


neformalni nain definisati ulazno-izlazne
odnose
Problem sortiranja

Da li neki od brojeva u ulaznom nizu mogu


biti jednaki i kako ih poreati u izlaznom
nizu?

Algoritmi zadavanje problema


B) Formalni nain definisanja (zadavanja) problema
Iz dva dela:
1. Ulazni parametri i odgovarajui izlazni parametri
2. Obe vrste parametara zadovoljavaju odreene
uslove kojima se definie sam problem
U literaturi se esto koristi pojam instanca
problema koji podrazumeva skup konkretnih
vrednosti za ulazne parametre, a pod reenjem
instance problema podrazumevaju se
konkretne vrednosti izlaznih parametara

Algoritmi zadavanje problema


B) Formalni nain definisanja (zadavanja) problema
Instanca problema sortiranja - [23,17,8,20,15]
Reenje te instance - [8,15,17,20,23]

Algoritmi zadavanje problema


Ako smo zadali raunarski problem sledi
definisanje matematikog modela problema
Model se sastoji iz dva dela koji opisuju njegove
ulazne i izlazne parametre
Oba dela se predstavljaju u vidu odgovarajuih
matematikih objekata kao to su brojevi,
skupovi, funkcije itd...
Ulazni deo - opti model instance problema
Izlazni deo opti model reenja instance
problema

Algoritmi zadavanje problema


Formalni nain definisanja (zadavanja) problema
Ulaz: (opti model instance:)
pozitivan ceo broj k (broj metalnih novia)
niz od k celih brojeva [c1,....ck] (vrednost
pojedinanih apoena)
a novani iznos
Izlaz: (opti model reenja instance:)
niz od k celih brojeva [b1,....bk] takav da vai:

=
a

b c
i =1

b
i =1

je minimalno

Algoritmi reenje problema


Nakon kreiranja odgovarajueg matematikog
modela za dati problem - treba nai reenje na
bazi definisanog modela
Poetni ili meu-korak je nai reenje u formi
algoritma
ta je algoritam?
DEF.- Algoritam je diskretan i jednoznaan
postupak predstavljen konanim brojem
instrukcija (pravila) koji dovodi do reenja nekog
konkretnog problema

Algoritmi
Ili,
Algoritam je tano definisana raunarska
procedura koja predpostavlja neke podatke kao
ulaz i proizvodi neke podatke kao izlaz
Sastoji se od niza preciznih koraka koji dovode
do reenja datog problema
Svi koraci se mogu mehaniki izvriti na raunaru

Algoritmi
Analogija sa kuhinjskim receptom
Algoritam program

Zapis algoritma
Postoji vie naina kako se algoritam moe
predstaviti
eljeni stepen formalizma u predstavljanju
1. Korienje govornog jezika u prikazu algoritma
2. Korienjem nekog programskog jezika sa
njegovim strogim sintaksnim i semantikim
pravilima

Kompromisna reenja:
1. Algoritamske eme kao grafiki nain i
2. Pseudo jezici

Zapis algoritma - NZD

NZD(a, b)
Iterativni postupak rezultat iz vie koraka (u svakom
koraku obrada je identina)
Rezultat jednog koraka koristi se u sledeem
1. Postupak koji se ponavlja navodi se u formi tela petlje
2. Broj ponavljanje se kontrolie izlaznim uslovom petlje

Zapis algoritma - NZD

NZD(a, b) iterativno reenje

Reenje se zasniva na jednakosti najveeg


zajednikog delioca sukcesivnih ostataka

Svaki korak poinje sa dva ostatka (inicijalno a i b)


nzd(a, b) = nzd(b, a%b)
Sve dok je drugi ostatak 0
nzd(a, 0) = a

Zapis algoritma - NZD

NZD(a, b) iterativno reenje

Zapis algoritma - NZD

Algoritamske eme (dijagram toka):


Verzija sa
oduzimanjem:

Zapis algoritma - NZD

Pseudo kod:

Algoritmi
Glavne teme kojima emo se baviti u toku kursa:
Dizajn algoritama
Kreativan proces pisanja algoritma kojim se dolazi
do nedvosmislenih i preciznih instrukcija od kojih se
sastoji algoritam
Ne postoji arobna formula
Postoje standardni metodi (eme) koje moemo
koristiti (algoritamske paradigme)

Analiza algoritama
Dokaz ispravnosti
Analiza efikasnosti

Algoritmi
Jo jedan razlog za analizu algoritama
Uslov: dati problem mora biti algoritamski reiv
Problem koji je algoritamski reiv ne
podrazumeva jedinstveno reenje takvi
problemi mogu imati vie reenja (algoritama)
Uporeivanje po kvalitetu algoritama koji
reavaju isti problem

Kriterijumi kvaliteta algoritma


Korektnost (ispravnost) (dizajn algoritma)
Efikasnost
Vremenska sloenost
Prostorna sloenost
Jasnoa i jednostavnost
Optimalnost

Domai zadatak
Napisati algoritam u pseudo kodu koji za dati niz
brojeva a od n elemenata vraa indeks elementa
sa najveom vrednou.
Ulazni parametri: a i n.

You might also like