Algoritmi
Algoritmi on yksityiskohtainen kuvaus tai ohje siitä, miten tehtävä tai prosessi suoritetaan; jota seuraamalla voidaan ratkaista tietty ongelma.[1] J.G. Brookshearin määritelmän mukaan algoritmi koostuu järkestyksessä olevista, yksiselitteisistä toiminnoista jotka voidaan suorittaa ja jotka määrittelevät lopputulokseen johtavan prosessin.[2]
Algoritmi on alkujaan matemaattinen käsite. Algoritmeja ovat jo nekin koulun alaluokilla opetetut menetelmät (allekkain kertomisesta ja jakokulmassa jakamisesta), joilla mitkä tahansa luvut voidaan kertoa tai jakaa keskenään, mutta toisinaan termillä on tarkoitettu nimenomaan Eukleideen algoritmia kahden kokonaisluvun suurimman yhteisen tekijän etsimiseksi. Nykyisin algoritmin käsite kuitenkin liittyy ennen kaikkea tietokoneiden ohjelmointiin ja tietojenkäsittelytieteeseen, joissa niillä on erityisen suuri merkitys etenkin tietorakenteiden yhteydessä. Tietojenkäsittelyn terminä Brookshearin määritelmä algoritmille tarkoittaa sitä, että on mahdollista rakentaa algoritmia vastaava Turingin kone, joka pysähtyy kaikilla syötteillä.
Esimerkiksi keittokirja on oikeastaan kokoelma algoritmeja, joita seuraamalla ruoanlaiton pitäisi onnistua. Vastaavasti koottavan kirjahyllyn mukana pitäisi tulla algoritmi, jonka avulla palasista saa rakennetuksi toimivan kirjahyllyn. Todellisuudessa algoritmit ovat kuitenkin usein monimutkaisempia ja sisältävät myös toistoja ja haarautumia loogisen päättelyn perusteella. Tietokoneohjelmien toiminta perustuu kehittyneisiin ohjelmointikielillä ilmaistuihin algoritmeihin.
Sana algoritmi tulee persialaisen matemaatikon ja tähtitieteilijän Muhammed ibn-Musa al-Khwarizmin nimestä.
Hakualgoritmit Lajittelualgoritmit Valinta-algoritmit Tiivistealgoritmit (engl. message-digest) Pakkausalgoritmit Merkkijonohakualgoritmit A*-algoritmi FFT, nopea Fourier'n muunnos
Myös äänen- ja kuvanpakkaukseen liittyvät koodekit käyttävät erilaisia algoritmeja.
Eukleideen algoritmi Neliöjuurialgoritmit Newtonin menetelmä
Luettelo algoritmeista Asymptoottinen suoritusaika Tiedonpakkaus Videonpakkaus Äänenpakkaus Puheen pakkaaminen Ultranopea kaupankäynti
Brookshear, J. Glenn (1989). Theory of Computation: Formal Languages, Automata, and Complexity. Redwood City, California: Benjamin/Cummings Publish Company, Inc. ISBN 0-8053-0143-7. Knuth, Donald E.: Fundamental Algorithms, The Art of Computer Programming. Addison-Wesley Publishing Company. 1976. Wirth, Niklaus: Algoriths + Data Structures = Programs. Prentice-Hall, Inc. 1976. ISBN 0-13-022418-9 Citation error, replace with{{cite book| author = Kaleva, Osmo| title = Numeerinen analyysi| location = Tampere| publisher = TTKK| year = 1993| version = Opintomoniste 163| id = ISBN 951-721-941-5}}
* Luokka:Seulonnan keskeiset artikkelit