Algoritma Nedir? Temel Özellikleri ve Günlük Hayattan Örnekler
Algoritma, bir problemi çözmek veya belirli bir sonuca ulaşmak için izlenen sıralı ve sonlu adımlar bütünüdür. Girdi, işlem, karar ve çıktı unsurları sayesinde çözüm süreci anlaşılır ve takip edilebilir hâle gelir. Günlük yaşamda yemek tarifi uygulamak veya bir yere giderken yol izlemek de algoritmik düşünmeye örnek olabilir.
Bu yazıda (8)
Algoritma, bir işi gerçekleştirmek ya da bir problemi çözmek için hangi adımların hangi sırayla uygulanacağını gösteren plandır. Bilgisayar programlarının temelinde bulunur; ancak algoritma kullanmak için bilgisayar şart değildir.
Algoritmanın tanımı ve amacı
Algoritma; belirli bir problemi çözmek, bir hesabı yapmak veya istenen sonuca ulaşmak için hazırlanmış, açık ve sonlu adımlar dizisidir. Her adım, uygulanacak işlemi anlaşılır biçimde belirtir. Süreç bir başlangıç durumundan yola çıkar, verilen bilgiler üzerinde işlemler yapar ve sonunda bir sonuç üretir.
Algoritmanın amacı, çözümü rastgele denemeler yerine düzenli ve tekrar edilebilir bir plana dönüştürmektir. Aynı başlangıç bilgileri ve aynı kurallar kullanıldığında, çözümün nasıl ilerleyeceği önceden görülebilir. Örneğin iki sayının toplamını bulmak için önce sayıları almak, ardından bu sayıları toplamak ve toplamı sonuç olarak göstermek yeterlidir. Burada sayılar başlangıç bilgisi, toplama işlemi süreç, elde edilen toplam ise çıktıdır.
Bir algoritma yalnızca bilgisayarların yaptığı işlemleri anlatmaz. Bir insanın da takip edebileceği kadar açık olan yemek tarifi, yol tarifi veya matematikteki işlem sırası algoritma mantığı taşıyabilir. Bilgisayarda ise bu plan daha sonra bir programlama diliyle ifade edilerek çalıştırılabilir.
Algoritmanın temel özellikleri
İyi bir algoritmanın adımları belirli bir sıraya sahip, açık, uygulanabilir ve sonlu olmalıdır. Sıralılık, işlemlerin gelişigüzel değil, birbirini tamamlayacak biçimde yürütülmesini sağlar. Açıklık, her adımın farklı kişiler tarafından benzer şekilde anlaşılmasına yardımcı olur. Uygulanabilirlik, adımların gerçekten yapılabilecek işlemlerden oluşmasını; sonluluk ise sürecin sonsuza kadar sürmeyip belirli bir noktada bitmesini ifade eder.
Bu özelliklerin nasıl çalıştığını basit bir hesaplama üzerinden görebiliriz. Bir sayının karesini bulma planında önce sayı alınır, sonra sayı kendisiyle çarpılır ve sonuç yazdırılır. “Biraz hesapla” gibi belirsiz bir yönerge uygulanabilir değildir; çünkü hangi işlemin, ne zaman yapılacağı belli değildir. Benzer şekilde, sonucu hiçbir zaman göstermeyen veya bitiş koşulu bulunmayan bir adımlar dizisi sonlu bir algoritma sayılmaz.
Algoritma farklı başlangıç verileriyle de kullanılabilmelidir. İki sayıyı toplama planı yalnızca belirli iki sayıya bağlı kalmaz; yeni sayılar verildiğinde aynı işlem sırası yeniden uygulanır. Böylece algoritma tek bir sorunun cevabını değil, aynı türden problemlerin çözüm yolunu tanımlar. Gerekli olduğunda bazı adımlar koşula göre farklı yollara ayrılabilir; bu karar yapısı çözümün farklı durumlara uyarlanmasını sağlar.
Girdi, işlem, karar ve çıktı
Bir algoritmanın çalışmasını anlamak için dört temel unsura bakılabilir: girdi, işlem, karar ve çıktı. Girdi, algoritmanın başlangıçta aldığı veri veya bilgidir. İşlem, bu veriler üzerinde yapılan hesaplama ya da dönüştürmedir. Karar, bir koşulun doğru veya yanlış olmasına göre izlenecek yolu belirler. Çıktı ise işlemler tamamlandığında elde edilen sonuçtur.
Örneğin bir öğrencinin notunun geçme sınırını karşılayıp karşılamadığını belirleyen planda öğrencinin notu girdidir. Not, belirlenen sınırla karşılaştırılır; bu karşılaştırma işlemdir. “Not sınırdan büyük ya da eşit mi?” sorusu karar noktasıdır. Koşul doğruysa “Geçti”, yanlışsa “Kaldı” çıktısı verilir. Böylece girdi, işlem ve karar adımları bir araya gelerek anlamlı bir sonuç üretir.
Algoritmanın adım adım çalışma mantığı
Bir problemi algoritmaya dönüştürürken önce ulaşılmak istenen sonuç belirlenir. Ardından problemin çözümü için gerekli girdiler ve bu girdiler üzerinde yapılacak işlemler sıralanır. Her adımın bir önceki adımın sonucuna göre ilerlemesi, çözümün takip edilebilir olmasını sağlar. Bir noktada koşula bağlı seçim gerekiyorsa algoritma, durumun sonucuna göre farklı bir adıma yönelir ve işlem tamamlandığında çıktıyı üretir.
Örneğin bir sayının pozitif, negatif veya sıfır olduğunu bulan bir algoritmada önce sayı alınır. Sayı sıfıra eşitse sonuç “sıfır” olur. Eşit değilse sayının sıfırdan büyük olup olmadığı kontrol edilir; büyükse “pozitif”, değilse “negatif” sonucu verilir. Burada adımlar belirli bir sırayla ilerler ve her karar, bir sonraki işlemi seçer. Böyle bir planı farklı sayılarla tekrar uygulamak mümkündür.
Bir algoritmanın işe yarayıp yaramadığını görmek için adımlar örnek girdilerle izlenebilir. Bir adımın eksik olması, yanlış sıraya konması veya bazı durumları hesaba katmaması beklenmeyen sonuçlara yol açabilir. Bu nedenle çözüm planı yazıldıktan sonra farklı başlangıç verileriyle kontrol edilmesi, algoritmanın anlaşılır ve uygulanabilir olmasına yardımcı olur. Algoritmanın verimliliği ve karmaşıklık analizi ise ayrı bir konudur.
Günlük hayattan basit bir algoritma örneği
Çay hazırlama süreci, günlük yaşamda algoritmik düşünceyi göstermenin basit bir yoludur. Önce gerekli malzemeler hazırlanır ve suyun ısıtılması başlatılır. Su yeterince ısındığında çay eklenir, belirli bir süre beklenir ve içecek bardağa aktarılır. İstenirse şeker eklenmesi bir karar adımı olarak sürece katılır: Şeker isteniyorsa eklenir, istenmiyorsa bu adım atlanır.
Bu örnekte su ve çay gibi malzemeler girdi, ısıtma ve demleme işlemleri süreç, şeker eklenip eklenmeyeceği karar, hazırlanan çay ise çıktıdır. Adımların sırası değiştirilirse sonuç etkilenebilir; örneğin su ısınmadan demleme aşamasına geçilemez. Ayrıca süreç bir noktada tamamlanır, yani sonsuz biçimde devam etmez. Aynı plan, benzer koşullarda tekrar uygulanabildiği için günlük bir algoritma örneğidir.
Bir yere gitmek için izlenecek yolu belirlemek, çamaşır makinesini çalıştırmak veya bir alışveriş listesindeki ürünleri sırayla kontrol etmek de benzer biçimde adımlara ayrılabilir. Akış şeması hazırlama ve sembollerin kullanımı ile sözde kod yazma, bu tür çözüm planlarını göstermeye yarayan ayrı konulardır.
Algoritmanın gösterim biçimleri
Bir algoritma günlük dilde açıklanan metinle, sözde kodla veya akış şemasıyla gösterilebilir. Metin, adımları herkesin anlayabileceği cümlelerle anlatır; sözde kod, programlama diline benzer ancak belirli bir dile bağlı olmayan bir gösterim sunar. Akış şeması ise algoritmanın adımlar arasındaki ilerleyişini görsel olarak ifade eder.
Koşul ve döngü kavramlarına kısa giriş
Koşul, bir durumun sonucuna göre farklı adımlardan birinin seçilmesini sağlar; döngü ise belirli bir işlem grubunun bir koşula bağlı olarak tekrarlanmasıdır.
Algoritma ile program arasındaki temel fark
Algoritma, çözümün hangi adımlarla yapılacağını anlatan genel plandır; program ise bu planın bir programlama dilinde bilgisayarın çalıştırabileceği biçime dönüştürülmüş hâlidir. Aynı algoritma farklı programlama dilleriyle uygulanabilir ve programlama dili, algoritmayı uygulamak için kullanılan araçlardan biridir.
Çay hazırlama, yol tarifi uygulama ve alışveriş listesindeki ürünleri sırayla kontrol etme gibi işlemler; girdi alma, adımları uygulama, koşula göre karar verme ve sonuç üretme özellikleri nedeniyle algoritmik süreçlerdir.
Bir algoritmayı ayırt ederken dört noktayı birlikte kontrol edin: adımların sıralı ve açık olması, uygulanabilir olması, belirli bir noktada sona ermesi ve bir çıktı üretmesi. Girdi ile çıktıyı karıştırmamak önemlidir; girdi başlangıçta alınan veri, çıktı ise işlemlerden sonra elde edilen sonuçtur.
Sık sorulan sorular
Algoritma yalnızca bilgisayarlarda mı kullanılır?
Hayır. Yemek tarifi, yol tarifi veya bir işlemi sırayla yapma planı da açık, uygulanabilir ve sonlu adımlardan oluşuyorsa algoritma mantığı taşır.
Bir algoritmanın mutlaka çıktı üretmesi gerekir mi?
Evet. Algoritmanın amacı bir problemi çözmek veya bir işlemi tamamlamaktır; bu nedenle süreç sonunda bir sonuç ya da çıktı ortaya koyması beklenir.
Algoritmada karar adımı ne işe yarar?
Karar adımı, bir koşulun sonucuna göre izlenecek yolu belirler. Koşul doğruysa bir işlem, yanlışsa başka bir işlem uygulanabilir.
Algoritma ile program aynı şey midir?
Hayır. Algoritma çözüm planıdır; program ise bu planın bir programlama diliyle bilgisayarın çalıştırabileceği biçimde yazılmasıdır.
- •Wikipedia (EN) — Algorithm — Algorithm / girisen.wikipedia.org