Algoritm
Allikas: Vikipeedia
| Vajab keelelist või sõnastuslikku toimetamist. |
Algoritm on samm-sammuline tegevusjuhis, juhend, eeskiri mingi tegevuse sooritamiseks või eesmärgi saavutamiseks. Kõige sagedamini kasutatakse seda terminit matemaatilise ülesande lahendamiseks mõeldud eeskirja kohta. Algoritmi esitust mingis formaalses keeles, tavaliselt programmeerimiskeeles või masinakoodis, nimetatakse programmiks.
Sõna "algoritm" tuleb 9. sajandi araabia matemaatiku Abu Jafar Muhammad ibn Musa hüüdnimest al-Horazmi ('horezmlane', tema sünnilinna, praeguse Usbekistani territooriumil asuva Hiiva tolleaegse nime järgi). Al-Horazmi 12. sajandil ladina keelde tõlgitud tööde kaudu jõudsid Lääne-Euroopa matemaatikuteni muude Indiast ja Araabiast pärit ideede kõrval ka mitmed võrrandite lahendamise eeskirjad, mida hakatigi algoritmideks kutsuma.
Erinevate (mittematemaatiliste) algoritmidega puutume kokku iga päev: näiteks kokaraamatus olevad retseptid või sõbrale jäetud juhised kohtumispaika jõudmiseks. Algoritmid on ka koolis õpetatavad mitmekohaliste arvude kirjaliku liitmise, lahutamise, korrutamise ja jagamise eeskirjad.
Esimesed katsed anda algoritmile matemaatiliselt range kuju tehti 1920. aastatel. Esmalt arvati, et formaliseerimiseks kõlbab lihtrekursiivse funktsiooni mõiste. 1928. aastal avaldas Wilhelm Ackermann näite funktsioonist, mis on algoritmiliselt arvutatav, kuid ei ole lihtrekursiivne. 1930. aastatel lõid Alonzo Church ja Stephen Kleene lambdaarvutuse. Samasse aega jääb ka Turingi masina loomine Alan Turingi ja Emil Leon Posti poolt ning täisrekursiivse funktsiooni mõiste kasutuselevõtmine Kurt Gödeli ja Jacques Herbrandi poolt.
[redigeeri] Rekursiivne algoritm
Rekursiivne algoritm on algoritm, mis pöördub tingimuste täitmiseks enda poole. Leidub programmeerimiskeeli, mis võimaldavad kordusi vaid läbi rekrusiooni (nt: Loogiline programmeerimine - programmeerimiskeel Prolog). Tehnilistel põhjustel on parem realiseerida iteratiivseid algoritme, sest igal enese poole pöördumisel eraldatakse funtsioonile mälu, ning olukordades kus rekursiooni sügavus on ületanud 100.000-1.000.000 piiri, on märgatav eksponentsiaalne kiiruse erinevus.
[redigeeri] Vaata ka
[redigeeri] Välislingid
- Dictionary of Algorithms and Data Structures
- Special Interest Group on Algorithms and Computation Theory