Kõige üldisemas tähenduses on algoritm üksikasjalike juhiste kogum, mille tulemuseks on teadaolevast algusest ennustatav lõppseisund. Algoritmid on aga täpselt nii head, kui on antud juhised, ja tulemus on vale, kui algoritm pole õigesti määratletud.
Algoritmide näited
Algoritmi tavaline näide on lennukimudeli kokkupanemise juhised. Arvestades paljude märgitud tükkide alguskomplekti, võib järgida antud juhiseid, et saada prognoositav lõppseisund: lõpetatud lennuk. Trükivead juhistes või toimingu mittejärgimine põhjustavad vigase lõpptoote.
Teine levinud näide on arvutiprogramm. Iga arvutiprogramm on lihtsalt juhiste jada, mis võib olla erineva keerukusega ja on loetletud kindlas järjekorras, mis on loodud konkreetse ülesande täitmiseks. Matemaatika kasutab ka algoritme võrrandite käsitsi lahendamiseks, ilma kalkulaatorit kasutamata. Viimane näide on inimaju: enamik inimaju käsitlusi määratleb kogu käitumise – alates toidu hankimisest kuni armumiseni – keeruka algoritmi tulemusena.
Algoritmide klassid
Kuigi erinevat tüüpi algoritmide jaoks ei ole üldiselt aktsepteeritud jaotust, on ühiseid klasse, millesse algoritmid sageli kuuluvad. Nende hulgas on:
Dünaamilised programmeerimisalgoritmid: see klass jätab meelde vanemad tulemused ja püüab seda kasutada uute tulemuste leidmise protsessi kiirendamiseks.
Ahned algoritmid: Ahned algoritmid ei püüa mitte ainult leida lahendust, vaid leida ideaalse lahenduse mis tahes probleemile.
Toore jõu algoritmid: toore jõu lähenemine algab mingil juhuslikul hetkel ja kordab kõiki võimalusi, kuni leiab lahenduse.
Juhuslikud algoritmid: see klass hõlmab mis tahes algoritme, mis kasutab protsessi mis tahes hetkel juhuslikku arvu.
Hargnemis- ja seotamisalgoritmid: hargnemis- ja seotud algoritmid moodustavad põhiprobleemi alamprobleemide puu, järgides iga haru, kuni see on lahendatud või ühendatud teise haruga.
Lihtsad rekursiivsed algoritmid: see tüüp otsib kohe otsest lahendust, seejärel liigub lihtsama lahenduse leidmiseks tagasi.
Backtracking algoritmid: Backtracking algoritmid testivad lahendust; kui lahendus leitakse, on algoritm lahendanud, kui ei, siis kordub üks kord ja testib uuesti, jätkates kuni lahenduse leidmiseni.
Jaga ja valluta algoritmid: jaga ja valluta algoritm sarnaneb haru ja seotud algoritmiga, välja arvatud see, et see kasutab kordumise meetodit, jagades samal ajal probleemi alamprobleemideks.
Jada- ja paralleelalgoritmid
Lisaks nendele üldklassidele võib algoritmid jaotada ka kahte põhirühma: jadaalgoritmid, mis on mõeldud jadakäituseks, kus iga operatsioon sooritatakse lineaarses järjekorras; ja paralleelsed algoritmid, mida kasutatakse paralleelprotsessoreid töötavates arvutites, kusjuures mitu toimingut käitatakse üksteisega paralleelselt. Paralleelsed algoritmid eksisteerivad ka loodusmaailmas näiteks liigi üle toimuva geneetilise mutatsiooni korral.