Dalam
matematika dan
ilmu komputer,
algoritme adalah prosedur langkah-demi-langkah untuk penghitungan.Algoritme digunakan untuk
penghitungan,
pemrosesan data, dan
penalaran otomatis.Algoritme adalah
metode efektif diekspresikan sebagai rangkaian
terbatas[1]dari instruksi-instruksi yang telah didefinisikan dengan baik
[2]untuk menghitung sebuah
fungsi.
[3]Dimulai dari sebuah kondisi awal dan input awal (mungkin
kosong),
[4]instruksi-instruksi tersebut menjelaskan sebuah
komputasi yang, bila
dieksekusi, diproses lewat sejumlah urutan kondisi terbatas
[5]yang terdefinisi dengan baik, yang pada akhirnya menghasilkan "keluaran"
[6]dan berhenti di kondisi akhir.Transisi dari satu kondisi ke kondisi selanjutnya tidak harus
deterministik;beberapa algoritme, dikenal dengan
algoritme pengacakan, menggunakan masukan acak.
[7]Walaupun
algorism-nya
al-Khawarizmi dirujuk sebagai aturan-aturan melakukan aritmetika menggunakan
bilangan Hindu-Arab dan solusi sistematis dan
persamaan kuadrat, sebagian formalisasi yang nantinya menjadi algoritme modern dimulai dengan usaha untuk memecahkan
permasalahan keputusan (Entscheidungsproblem) yang diajukan oleh
David Hilbert pada tahun 1928.Formalisasi selanjutnya dilihat sebagai usaha untuk menentukan "
penghitungan efektif"
[8]atau "metode efektif";
[9]formalisasi tersebut mengikutkan
Godel-
Herbrand-
Kleene fungsi rekursif-nya
Kurt Godel -
Jacques Herbrand -
Stephen Cole Kleene pada tahun 1930, 1934, dan 1935,
kalkulus lambda-nya
Alonzo Church pada tahun 1936, "
Formulasi 1"-nya
Emil Post pada tahun 1936, dan
Mesin Turing-nya
Alan Turing pada tahun 1936-7 dan 1939.Dari definisi formal dari algoritme di atas, berkaitan dengan konsep intuituf, masih tetap ada masalah yang menantang.
[10]