Algoritma, sınırlı sürede sonuç veren iyi tanımlanmış adımların bir dizisidir.
İyi tanımlanmış adım: Bu, tam olarak tanımlanmış yapabileceğiniz veya hesaplayabileceğiniz bir şeydir. Sadece adımı okuyarak ne yapmanız gerektiğini ve nasıl yapılacağını bilirsiniz. Özellikle, bildiğiniz bir programlama dilinde yazabilir ve program parçasının adımla tam olarak eşleştiğinden emin olabilirsiniz.
Sıra: Adımlar belirtilen sırayla yürütülür. Adımlar, verilere (döngüler) bağlı olarak birden fazla kez yürütülebilir veya verilere (if ifadeleri) bağlı olarak hiç yürütülemez. Paralel algoritmalar adımlar üzerinde yalnızca kısmi bir düzen uygular, bu yüzden burada çok basitleştiriyorum. Kısmen sıralı bir dizi olarak tanımlamak bir sekanstan daha doğru olurdu, ancak kelimeleri biraz daha basit tutmak istedim. Ayrıca, kısmen sipariş edilen bir seti tam sırayla gömmek kolayca mümkündür.
Sonuç: Bir bitiş durumu veya değeri. Önceden tahmin edilebilir olmak zorunda değildir, ancak bazı koşulları tatmin eden kesin bir son olması gerekir. Bu, bir işletim sisteminin bir algoritma olmadığı anlamına gelir, ancak birçoğunu kullanır.
Sonlu: Bir algoritmanın, en azından yeterince uzun süre çalışabilen bir makinede bir süre durması garanti edilir. Tahmin edilebilir bir zamanda durması garanti edilmez ve mevcut herhangi bir makinede güneş genişlemeden ve kırmızıya dönmeden önce duracağı garanti edilmez. Bu aynı zamanda bir işletim sisteminin bir algoritma olmadığı anlamına gelir, çünkü ideal olarak sonsuza dek çalışır. Bir zamanlar duracağından eminsek algoritma olacak bir şeyi tanımlamak için kullanılan "prosedür" kelimesini gördüm. (Bilinmeyen bir süre içinde duracak bir algoritmaya sahip olmak mümkündür. Diyelim ki, Goldbach'ın varsayımının yapıcı olmayan bir kanıtta matematiksel olarak yanlış olduğu kanıtlandı, bu yüzden iki asalin toplamı olmayan çift sayı> 2 idi. Basitçe çift sayıları test eden bir algoritma sonunda sona erer,
Algoritma kasıtlı olarak soyut bir şeydir, bu yüzden "Evrenin ısı ölümünden önce bunu gerçekleştirmek fiziksel olarak mümkün mü?" Cevaplamak çok zor olurdu. Bilgisayar işlemleri ile ilgili ise, bunu bir programlama dilinde uygulamak kolaydır.