Vous êtes sur la page 1sur 2

Algoritam se moe porediti sa kuhinjskim receptom, ali algoritam je tehniki izraz sa konkretnijim znaenjem od

recepta, i ako neto nazovemo algoritam znai da su sledei uslovi ispunjeni:

Algortiam je nedvosmislen opis koji jasno kazuje ta treba da se implementira. U receptu korak kao "Pecite dok
ne bude gotovo" je jasan, ali kod algoritma mora jasnije da se definie kada je uslov ispunjen, tako bi u algoritmu
instrukcija bila "Pecite dok pecivo ne dobije braon boju", a pritom je bitno definisati ta znai funkcija pecite i ta
je to braon boja. Isto tako kada bi se u algoritmu definisalo biranje broja, komanda kao "Izaberi veliki broj" nije
prihvatljiva, veliki broj je subjektivna stvar i da li u svakom izvravanju algoritma je potrebno novi broj izabrati,
potrebno je dati taan i konkretan opis broja i tako komanda "Izaberi nasumian broj izmeu 100 i 1000" je
mnogo jasnija.
Algoritam zahteva predefinisanu listu ulaza. Kao primer, algoritam moe da zahteva dva broja koja su vea od
nule, ili da zahteva re duu od 3 karaktera ili listu od nula ili vie brojeva. Ove ulaze algoritmu moe proslediti
drugi program koji ga poziva ili korisnik.
Algoritam proizvodi definisan set izlaza. Moe vratiti vei od dva broja, sva velika slova u rei ili sortiranu listu
brojeva.
Algoritam mora da se zavri i proizvede neki rezultat, uvek se zaustavljati nakon konanog vremenskog toka.
Ako bi algoritam potencijalno beskonano trajao, ne bi bio koritan jer se iz njega nikad ne bi dobio odgovor.
Od algoritma se oekuje da uvek proizvede taan rezultat. Algoritam koji bi u 99% sluajeva vraao najvei broj
iz niza, a u 1% sluajeva najmanji ne bi bio praktino upotrebljiv.
Ako algoritam oekuje definisane ulaze (preduslove), koji moraju da budu zadovoljeni, od algoritma se ne
oekuje da proizvede taan rezultat ili da ne funkcionise kako je to predvieno.

Pored ovoga, prilikom izrade algoritma na umu se moraju imati etri stvari:

1. Da li je dati problem mogue reiti algoritamski?

2. Ako neko da predlog algoritma, da li taj algoritam vai za svaki mogui ulaz/sluaj?

3. Koliko je potrebno da se vremenski izvri ovaj algoritam i koliko memorije mu je potrebno?

4. Ako znamo da je problem reiv i imamo algoritam koji vai za svaki mogui ulaz/sluaj,

da li je to najoptimalniji algoritam koji moe da postoji?

U nastavku je dat primerm algoritma za program koji kao ulaz prihvata konaan niz celih brojeva veih od 0. Algoritam je
prikazan pomou pseudo jezika kao i grafiki pomou ekvivalentnog grafikog prikaza toka programa.

function sortiranje(niz[]){ //definisanje naziva funkcije i ulaza


//ulaz je niz brojeva vecih ili jednak 0
max := 0; //najveci broj se definise kao najmanji
for(i := 0; i < niz.length; i++){ //definise se petlja koja prolazi kroz sve elemente niza
if(niz[i] > max){ // proverava se da li je i-ti element niza veci od najveceg
max := niz[i]; //ako jeste postavi trenutni kao najveci
}
}
return max; //izlaz je najveci broj iz niza
}
Slika 1 - Grafiki prikaz algoritma za funkciju sortiranja

Vous aimerez peut-être aussi