Algoritmi

Već smo zaključili da su za rad računara potrebni programi, koji nastaju zahvaljujući posebnoj vrsti aplikacija – programskom softveru. U programski softver spadaju sve aplikacije koje služe za pisanje drugih programa. Ponekad je za to dovoljan najjednostavniji tekst editor, a ponekad su u pitanju veoma složeni softverski paketi.

Najjednostavnije rečeno, algoritam predstavlja neki precizno opisan postupak. Taj postupak je obično svrsishodan, što znači da nas vodi do nekog cilja (rešenja problema) do koga možemo doći praćenjem niza koraka. Tako možemo reći da je algoritam precizno definisan postupak za rešavanje nekog problema u konačnom broju koraka.

U algoritmu koraci moraju biti jasno odvojeni, a sam algoritam mora biti nedvosmislen i mora se završiti posle nekog određenog broja koraka. Za iste početne vrednosti, algoritam uvek daje iste rezultate i primenljiv je za veći broj različitih početnih vrednosti.

Algoritmi su značajni za programiranje iz prostog razloga što sami programi predstavljaju konkretnu realizaciju algoritama na računaru.

Algoritmi mogu biti opisani na razne načine, od kojih su neki više (pseudokod) ili manje (prirodan jezik) formalizovani. Jedan od najpoznatijih i najpreglednijih načina za predstavljanje algoritama je putem algoritamske šeme (blok-dijagrama).

Postoji nekoliko podela algoritama, a najpoznatija je prema načinu izvršavanja koraka. Po njoj, algoritmi mogu biti:

Naravno, svaki malo složeniji algoritam u sebe uključuje elemente sva tri tipa.

Primeri algoritama

Linijska struktura - svaki korak se izvršava tačno jednom

Razgranata struktura - zavisno od programske logike, neki koraci će biti izvršeni a neki ne

Ciklična struktura - takođe zavisno od logike, neki koraci se mogu ponoviti više puta

Treba da znamo da se kvalitet svakog programa, a samim tim i algoritma, ocenjuje po dva osnova, a to su brzina i korišćenje memorije. Iz ranijih tekstova o hardveru, sećamo se da brzina i memorija predstavljaju dva ključna elementa u razvoju računara – procesori postaju sve moćniji i brži, a kapaciteti unutrašnje i spoljne memorije se sve više povećavaju.

To znači da, sa jedne strane, proizvođači hardvera pokušavaju sve više da ubrzaju računare i da im ugrade što je moguće više memorije, dok se, sa druge strane, programeri trude da pišu bolje programe koji će raditi brže i zauzimati manje memorije. Na taj način računari mogu da rade sa većom količinom podataka i time budu upotrebljiviji.

Bolji algoritam je onaj koji je efikasniji po pitanju korišćenja memorije i koji u manjem broju izvršenih koraka dolazi do rezultata.

Kompleksnost algoritma

Programi i algoritmi se obično posmatraju kao niz instrukcija koje za zadati ulaz (početne podatke) kreiraju određeni izlaz (rezultat). Kompleksnost algoritma se procenjuje na osnovu toga kako se povećava broj koraka koji se moraju izvršiti sa povećanjem ulaza. Što je više koraka potrebno da se dođe do rezultata, algoritam će raditi sporije. Tako postoji nekoliko klasa algoritama, od kojih će ovde biti pomenute samo najznačajnije.[1]

  1. Urošević, D. (1996), Algoritmi u programskom jeziku C, Beograd: Mikro knjiga
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies). Detaljnije o tome možete pročitati u tekstu o našoj politici privatnosti.