Algoritmų analizė yra kompiuterių mokslo sritis, skirta suprasti algoritmų sudėtingumą. Algoritmai paprastai apibrėžiami kaip procesai, kurie atlieka eilę operacijų iki galo. Algoritmus galima išreikšti įvairiais būdais: srautų diagramomis, natūralia kalba ir kompiuterių programavimo kalbomis. Algoritmai naudojami matematikoje, kompiuterijoje ir kalbotyroje, tačiau dažniausiai naudojami kompiuteriai skaičiavimams ar duomenims apdoroti. Algoritmų analizė nagrinėja algoritmus, parašytus kompiuterių programavimo kalbomis, kurie yra pagrįsti matematiniu formalizmu
Algoritmas iš esmės yra instrukcijų rinkinys, skirtas kompiuteriui atlikti skaičiavimą tam tikru būdu. Pavyzdžiui, kompiuteris naudotų algoritmą darbuotojo atlyginimui apskaičiuoti. Tam, kad kompiuteris atliktų skaičiavimus, reikia į sistemą įvesti atitinkamus duomenis, tokius kaip darbuotojo darbo užmokesčio dydis ir dirbtų valandų skaičius.
Tą pačią operaciją gali atlikti daugiau nei vienas algoritmas, tačiau kai kurie algoritmai naudoja daugiau atminties ir užtrunka ilgiau nei kiti. Be to, kaip mes žinome, kaip gerai veikia algoritmai apskritai, atsižvelgiant į kompiuterių ir duomenų įvesties skirtumus? Čia atsiranda algoritmų analizė.
Vienas iš būdų patikrinti algoritmą yra paleisti kompiuterinę programą ir pamatyti, kaip gerai ji veikia. Šio metodo problema yra ta, kad jis mums tik nurodo, kaip gerai algoritmas veikia su konkrečiu kompiuteriu ir įvesties rinkiniu. Algoritmų analizės tikslas yra patikrinti ir tada padaryti išvadas apie tai, kaip gerai veikia konkretus algoritmas apskritai. Tai būtų labai sunku ir atimtų daug laiko atlikti atskiruose kompiuteriuose, todėl mokslininkai kuria kompiuterių veikimo modelius, kad išbandytų algoritmus.
Apskritai, algoritmų analizei labiausiai rūpi išsiaiškinti, kiek laiko užtrunka programai paleisti ir kiek atminties jai reikia programai vykdyti. Visų pirma, kompiuterių mokslininkai naudoja algoritmų analizę, kad nustatytų, kaip programai priskirti duomenys turi įtakos bendram jos veikimo laikui, kiek atminties kompiuteriui reikia programos duomenims, kiek vietos kompiuteryje užima programos kodas, ar algoritmas sukuria teisingus rezultatus. skaičiavimai, kokia sudėtinga programa ir kaip ji susidoroja su netikėtais rezultatais.