Algoritme adalah urutan langkah yang didefinisikan dengan baik yang menghasilkan hasil dalam waktu yang terbatas.
Langkah yang terdefinisi dengan baik: Itu adalah sesuatu yang dapat Anda lakukan, atau hitung, yang didefinisikan dengan tepat. Hanya dengan membaca langkah Anda tahu apa yang harus Anda lakukan dan bagaimana melakukannya. Khususnya, Anda bisa menulisnya dalam bahasa pemrograman yang Anda tahu, dan pastikan fragmen programnya cocok dengan langkah itu.
Urutan: Langkah-langkah dieksekusi dalam urutan yang ditentukan. Langkah-langkah dapat dieksekusi lebih dari sekali tergantung pada data (loop) atau tidak dieksekusi sama sekali tergantung pada data (jika pernyataan). Algoritma paralel hanya memaksakan urutan parsial pada langkah-langkah, jadi saya terlalu menyederhanakan di sini. Akan lebih tepat untuk menggambarkannya sebagai set yang dipesan sebagian daripada urutan, tetapi saya ingin menjaga kata-kata sedikit lebih sederhana. Selain itu, mudah untuk menanamkan set yang dipesan sebagian dalam urutan penuh.
Hasil: Status atau nilai akhir. Itu tidak harus dapat diprediksi sebelumnya, tetapi itu harus menjadi tujuan yang pasti memenuhi beberapa kondisi. Ini berarti bahwa suatu sistem operasi bukanlah suatu algoritma, walaupun ia menggunakan banyak dari mereka.
Hingga: Algoritma dijamin untuk berhenti kapan saja, setidaknya pada mesin yang dapat berjalan cukup lama. Itu tidak selalu dijamin untuk berhenti dalam waktu yang dapat diprediksi, dan itu tidak dijamin bahwa itu akan berhenti sebelum matahari mengembang dan berubah merah pada setiap mesin yang ada. Ini juga berarti sistem operasi bukan suatu algoritma, karena idealnya akan berjalan selamanya. Saya telah melihat kata "prosedur" yang digunakan untuk menggambarkan sesuatu yang akan menjadi algoritma jika kami yakin itu akan berhenti kapan-kapan. (Dimungkinkan untuk memiliki algoritme yang akan berhenti dalam jumlah waktu yang tidak diketahui. Misalkan, katakan dugaan Goldbach terbukti salah secara matematis, dalam bukti nonkonstruksi, jadi ada bilangan genap> 2 yang bukan jumlah dari dua bilangan prima Algoritma yang hanya menguji bilangan genap akhirnya akan berakhir,
Algoritme adalah sesuatu yang sengaja abstrak, jadi kami tidak mempertimbangkan pertanyaan seperti "Apakah mungkin secara fisik untuk melakukan ini sebelum kematian panas Semesta?". Mereka akan terlalu sulit untuk dijawab. Jika terkait dengan operasi komputer, mudah untuk mengimplementasikannya dalam bahasa pemrograman.