Algoritmin analyysi on tietotekniikan ala, joka on omistettu ymmärtämään algoritmien monimutkaisuutta. Algoritmit määritellään yleensä prosesseiksi, jotka suorittavat sarjan toimintoja loppuun asti. Algoritmit voidaan ilmaista monella tapaa vuokaavioina, luonnollisena kielenä ja tietokoneohjelmointikielinä. Algoritmeja käytetään matematiikassa, laskennassa ja kielitieteessä, mutta yleisin käyttö on tietokoneissa laskelmien tekemiseen tai tietojen käsittelyyn. Algoritmi -analyysi käsittelee tietokoneohjelmointikielillä kirjoitettuja algoritmeja, jotka perustuvat matemaattiseen muotoon
Algoritmi on pohjimmiltaan joukko ohjeita tietokoneelle laskutoimituksen suorittamiseksi tietyllä tavalla. Esimerkiksi tietokone käyttää algoritmia työntekijän palkan laskemiseen. Jotta tietokone voi suorittaa laskelmat, se tarvitsee järjestelmään asianmukaista tietoa, kuten työntekijän palkkatasoa ja työtuntien määrää.
Useampia kuin yksi algoritmi saattaa toimia saman toiminnon suorittamiseksi, mutta jotkut algoritmit käyttävät enemmän muistia ja kestävät kauemmin kuin toiset. Lisäksi, kuinka tiedämme kuinka hyvin algoritmit toimivat yleensä ottaen huomioon erot tietokoneiden ja datatulojen välillä? Tässä tulee algoritmin analyysi.
Yksi tapa testata algoritmia on ajaa tietokoneohjelma ja nähdä, kuinka hyvin se toimii. Tämän lähestymistavan ongelma on se, että se kertoo meille vain, kuinka hyvin algoritmi toimii tietyn tietokoneen ja tulojen kanssa. Algoritmianalyysin tarkoituksena on testata ja tehdä sitten johtopäätöksiä siitä, kuinka hyvin tietty algoritmi toimii yleensä. Tämä olisi erittäin vaikeaa ja aikaa vievää yksittäisillä tietokoneilla, joten tutkijat kehittävät tietokoneiden toimintamalleja algoritmien testaamiseksi.
Yleensä algoritmi -analyysi koskee eniten sen selvittämistä, kuinka kauan ohjelman suorittaminen kestää ja kuinka paljon muistia tarvitaan ohjelman suorittamiseen. Tietojenkäsittelytieteilijät määrittävät algoritmianalyysin avulla erityisesti, kuinka ohjelmaan lasketut tiedot vaikuttavat sen kokonaiskäyttöaikaan, kuinka paljon muistitilaa tietokone tarvitsee ohjelmatiedoille, kuinka paljon tilaa ohjelman koodi vie tietokoneeseen, tuottaako algoritmi oikean laskelmat, kuinka monimutkainen ohjelma on ja kuinka hyvin se käsittelee odottamattomia tuloksia.