Što je analiza algoritma?

Analiza algoritama je područje računalne znanosti koje je posvećeno razumijevanju složenosti algoritama. Algoritmi se općenito definiraju kao procesi koji izvode niz operacija do kraja. Algoritmi se mogu izraziti na mnogo načina, u dijagramima toka, prirodnom jeziku i računalnim programskim jezicima. Algoritmi se koriste u matematici, računarstvu i lingvistici, ali najčešće se koriste u računalima za izračune ili obradu podataka. Analiza algoritama bavi se algoritmima napisanim računalnim programskim jezicima, koji se temelje na matematičkom formalizmu

Algoritam je u biti skup uputa za računalo da izvrši izračun na određeni način. Na primjer, računalo bi koristilo algoritam za izračunavanje plaće zaposlenika. Da bi računalo izvršilo izračune, potrebni su mu odgovarajući podaci uneseni u sustav, kao što su visina plaće zaposlenika i broj odrađenih sati.

Više od jednog algoritma može raditi za izvođenje iste operacije, ali neki algoritmi koriste više memorije i potrebno im je dulje za izvođenje od drugih. Također, kako znamo koliko dobro algoritmi općenito rade, s obzirom na razlike između računala i unosa podataka? Ovdje na scenu stupa analiza algoritama.

Jedan od načina testiranja algoritma je pokrenuti računalni program i vidjeti koliko dobro radi. Problem s ovim pristupom je što nam samo govori koliko dobro algoritam radi s određenim računalom i skupom ulaza. Svrha analize algoritma je testirati i zatim donijeti zaključke o tome koliko dobro određeni algoritam općenito funkcionira. To bi bilo vrlo teško i dugotrajno za napraviti na pojedinačnim računalima, pa istraživači osmišljavaju modele funkcioniranja računala kako bi testirali algoritme.

Općenito, analiza algoritama najviše se bavi utvrđivanjem koliko vremena je potrebno programu da se pokrene i koliko mu je memorijskog prostora potrebno za izvršavanje programa. Konkretno, računalni znanstvenici koriste analizu algoritama kako bi utvrdili kako podaci imputirani u program utječu na njegovo ukupno vrijeme rada, koliko memorijskog prostora računalo treba za podatke programa, koliko prostora programski kod zauzima u računalu, da li algoritam proizvodi ispravan kalkulacije, koliko je program složen i koliko se dobro nosi s neočekivanim rezultatima.