Syarat algoritma yang baik menurut Donald E. Knuth harus memenuhi lima hal berikut ini:

  1. Finiteness

Algoritma yang baik harus ada akhir atau berhenti setelah mengerjakan sederetan instruksi. Algoritma yang tiada akhir atau tidak dapat berhenti bukan merupakan algoritma yang baik.

2. Defineteness

Setiap langkah algoritma harus didefinisikan dengan tepat dan jelas sehingga tidak menimbulkan makna ganda(ambiguous). Sebagai contoh, pernyataan “Lakukan langkah di bawah ini beberapa kali”, pernyataan tersebut jelas akan membingungkan karena tidak ada yang membatasi berapa banyak perintah yang harus dijalankan. Bandingkan dengan pernyataan berikut: “Lakukan langkah di bawah ini sebanyak 10 kali”.

3. Input

Algoritma yang baik harus memiliki masukan data untuk diolah. Masukan adalah besaran atau nilai yang diberikan kepada algoritma, masukan biasanya diberikan di awal penulisan. Sebagai contoh, untuk menghitung luas segitiga kita membutuhkan nilai alas dan nilai tinggi, sehingga luas segitiga dapat dihitung.

4. Output

Algoritma yang baik adalah algoritma yang menghasilkan output atau keluaran yang merupakan hasil dari pengolahan data masukan.

5. Effectiveness

Algoritma yang baik adalah algoritma yang mempunyai langkah-langkah  atau instruksi yang effektif yaitu algoritma yang memiliki langkah yang paling sederhana, sehingga dapat dikerjakan dalam waktu yang cukup wajar.

5.