Verovatno smo, manje – više svi do sada imali prilike da se susretnemo sa ovim pojmom u različitim oblastima. Ali je posebno zanimljivo navesti da se algoritam primarno vezuje za oblast matematike, u koju je i prvi put uveden, sada već daleke 1600. godine. Za to je zaslužan jedan matematičar persijskog porekla, čije je ime bilo Al Horezmi i koji je zapravo uveo konkretni izraz, a sa ciljem da što jednostavnije opiše način na koji bi trebalo da se računaju decimalni brojevi. Zapravo, ovaj pojam i vodi poreklo upravo od prezimena pomenutog matematičara, a danas se sve manje on vezuje za oblast matematike, a sve više za informatiku.
Generalno govoreći, algoritam u domenu računarstva i informatike je niz naredbi koje bi trebalo da budu izvršene na konkretnom uređaju, to jest u okviru određenog programa. Podrazumeva se da apsolutno svaki algoritam mora da bude vrlo precizno određen, odnosno mora da, prema pravilima bude naveden apsolutno svaki korak.
Posebno ističemo da ne postoji definicija ovog pojma koja se jedino smatra ispravnom, a samo jedna od onih koje se najčešće mogu čuti jeste da algoritam predstavlja precizno opisane postupke, koji treba da dovedu do cilja koji je jasno određen. Zatim je tu i definicija koja glasi da je algoritam skup konkretnih akcija, sa precizno određenim redosledom obavljanja, koje treba da budu primenjene na tačno određene podatke, a kako bi dovele do željenih rezultata. Naravno, ima još mnogo mogućnosti za definisanje pomenutog pojma, ali im je poenta svima ista i odnosi se na sve one radnje koje moraju biti izvršene da bi se ostvaio unapred određeni cilj.
Da bi se određeni algoritam mogao okarakterisati kao kvalitetan, neophodno je da se prilikom njegovog kreiranja vodi računa o 5 zakonitosti. Najpre, on mora da ispoštuje zakon definisanosti, a to znači da apsolutno svaki segment koji je u njemu sadržan mora da bude vrlo jasno određen i to tako da nema mesta dvosmislenosti. Potom je neophodno voditi računa o pravilu konačnosti, to jest obratiti pažnju na činjenicu da mora da postoji tačno definisan broj segmenata, odnosno koraka koji će dovesti do konačnog izvršenja konkretnog algoritma. Treće pravilo koje se, isto tako obavezno poštuje prilikom kreiranja određenog algoritma se odnosi na važnost definisanja broja ulaza i izlaza, ali je isto tako važno povesti računa i o efikasnoti tog algoritma. A pod tim se misli da je neophodno da radnja zbog koje se on kreira svakako bude privedena kraju u određenom roku. Poslednja zakonitost koja kvalitetan algoritam izdvaja u odnosu na ostale jeste njegov rezultat, budući da ako on ne uspe da adekvatno odgovori na izvorni zahtev, onda se ne može smatrati uspešnim.
Pojam algoritamske strukture se vrlo često može čuti u oblasti računarstva i informatike, dok je drugačiji naziv za nju programska struktura, a zapravo se definiše kao skup određenog broja komandi programskog jezika. Podela ovih struktura je znatno složenija, ali uopšteno se javljaju 3 osnovne i to linijska, ciklična i razgranata algoritamska struktura. Podrazumeva se da svaka od njih ima svoje osobenosti, te da se primenjuju u različitim prilikama.
Programski jezici Koboli i Fortran ili, pak Algol se smatraju takozvanim algoritamskim jezicima, a njihova osnovna svrha jeste da predstave, to jest opišu postupak rešavanja određenog problema koji je konkretnim algoritmom predstavljen. Pored toga što se mogu prikazati uz korišćenje nekog programskog jezika, algoritmi se takođe mogu prikazati i u formi dijagrama, odnosno grafički, ali i na druge načine, a što isključivo zavisi od polja njihove primene.
Prisutno je nekoliko principa po kojima se mogu podeliti algoritmi, stim da su često principi njihove klasifikacije predmet spora među IT stručnjacima. Najčešće se može čuti da je najzastupljenija podela prema metodologiji koja je korišćena za izradu konkretnog algoritma, odnosno po osobinama obrasca koji je u tom slučaju primenjivan. Isto tako je prisutna u praksi i podela prema oblasti delovanja, kao i ona koja se definiše prema polju njegove primene, a takođe se može čuti i da se algoritmi dele po složenosti.