- Katılım
- 21 May 2023
- Mesajlar
- 709
- Tepki
- 17
- Puan
- 18
Algoritma kelimesi son yıllarda sosyal medya akışını belirleyen gizemli bir güç gibi kullanılıyor. Teknik tanımı ise çok daha sade: bir işi adım adım anlatan talimat kümesi.
Aşağıda kavramın standart tanımını, zorunlu niteliklerini, verimlilik karşılaştırmasının nasıl yapıldığını ve günlük hayattaki karşılıklarını iki kaynağa bakarak topluyoruz.
Sözlükteki karşılığı
IETF'in yayımladığı güvenlik terimleri sözlüğü kavramı şöyle tanımlıyor: problem çözme veya hesaplama yordamı için sonlu, adım adım talimatlar kümesi; özellikle de bir bilgisayar tarafından uygulanabilen türden.
Tanımdaki "sonlu" kelimesi kritik. Adımların bir yerde bitmesi gerekiyor; sonsuza kadar süren bir talimat dizisi algoritma sayılmıyor.
"Adım adım" ifadesi de belirsizliği dışarıda bırakıyor. Her adımın ne yapacağı belli olmalı ki yordam tekrarlanabilir olsun.
- Sonlu: Adımlar bir noktada bitiyor.
- Adım adım: Her adım belirli.
- Amaç: Problem çözmek veya hesaplama yapmak.
Tekrarlanabilirlik neden önemli?
MDN'in sözlük maddesi tanımı başka bir yerden yakalıyor: algoritma, bir işlevi yerine getirmek için kendi kendine yeten bir talimatlar dizisi.
Devamı işlevi açıklıyor: başka bir deyişle algoritma, bir problemin çözüm yolunu, insanlar ya da makineler tarafından tekrar tekrar çözülebilecek biçimde tarif etmenin bir yolu.
İki nitelik burada öne çıkıyor. Birincisi kendi kendine yetmesi: talimatlar dışarıdan yorum gerektirmeden anlaşılabilmeli. İkincisi tekrarlanabilirlik: aynı adımlar aynı sonuca götürmeli.
MDN uygulayıcının insan da olabileceğini vurguluyor. Verdiği örnek net: bir yemek tarifi, insanlar için bir algoritma.
Püf nokta' Alıntı:Algoritma bilgisayara özgü değil; bilgisayarın yaptığı, talimatları hızlı ve hatasız tekrarlamak.
Adımlar nasıl yazılır?
Bir algoritmayı ifade etmenin tek bir doğru biçimi yok. Aynı yordam düz metinle, sözde kodla, akış şemasıyla ya da doğrudan bir programlama diliyle anlatılabiliyor.
Belirleyici olan biçim değil, adımların belirsizlik bırakmaması. "Listeyi düzenle" bir adım değil; "listedeki her ögeyi bir sonrakiyle karşılaştır ve büyük olanı sağa al" bir adım.
MDN'in kendi kendine yetme vurgusu da buraya bakıyor: talimatı okuyan tarafın ek yorum yapması gerekiyorsa, aynı adımlar iki kişide iki farklı sonuç üretebiliyor.
Bu yüzden yazılım tarafında algoritma tartışması genellikle koddan önce yapılıyor. Adımlar netleşmeden yazılan kod, hatayı çözmek yerine gizliyor.
Verimlilik nasıl karşılaştırılıyor?
Aynı problemi çözen birden çok algoritma olabiliyor. Hangisinin daha iyi olduğu sorusu da bu noktada doğuyor.
MDN yanıtı veriyor: bilgisayar bilimciler algoritmaların verimliliğini "Algoritmik Karmaşıklık" ya da "Big O" gösterimi kavramıyla karşılaştırıyor.
Bu, çalışma süresinin girdi büyüdükçe nasıl arttığını tarif eden bir ölçüt. Küçük veride fark edilmeyen bir tercih, veri büyüdüğünde belirleyici hâle geliyor.
Pratik karşılığı da var: bir sayfa yavaşlıyorsa sorun her zaman sunucu gücü değil, seçilen yöntemin veri büyüdükçe nasıl davrandığı olabiliyor.
Yaygın algoritma aileleri
MDN örnekleri de sayıyor. Sıralama algoritmaları, bilgisayar programlamada bir makineye veriyi nasıl sıralayacağını anlatmak için sıkça kullanılıyor.
Yaygın olarak anılan diğer aileler arasında yol bulma algoritmaları (optimizasyon problemi olan Gezgin Satıcı Problemi gibi) ve ağaç dolaşma algoritmaları bulunuyor.
MDN makine öğrenmesi algoritmalarını da ayrı bir küme olarak listeliyor; doğrusal regresyon, lojistik regresyon, karar ağacı, rastgele orman, destek vektör makinesi ve çeşitli sinir ağı türleri bu listede yer alıyor.
Şifreleme tarafındaki karşılığı
Sözlük, tanımın altında ayrı bir maddeye de yönlendiriyor: kriptografik algoritma. Yani güvenlik alanında kullanılan yöntemler de aynı çatının altında tanımlanıyor.
Bu bağ pratikte önemli. Bir şifreleme yönteminin gücü, sır tuttuğu için değil, adımlarının açık olmasına rağmen tersine çevrilmesinin zor olmasından geliyor.
Aynı mantık parola saklamada da geçerli; yöntemin nasıl çalıştığı bilinse bile geri dönüşün maliyetli olması hedefleniyor.
Yan yana okunacaklar
Kaba kuvvetle deneme mantığının bu maliyet hesabına nasıl bağlandığını brute force yazımızda anlatmıştık.
Adımların kodla ifade edildiği tarafı Python yazımızda, veriyi sorgulayan tarafı ise SQL yazımızda ele almıştık.
Sık Sorulan Sorular
Algoritma nedir?
Güvenlik terimleri sözlüğüne göre problem çözme veya hesaplama yordamı için sonlu, adım adım talimatlar kümesi.
Bilgisayara mı özgü?
Hayır. MDN yemek tarifini insanlar için bir algoritma örneği olarak veriyor.
Hangi nitelikler zorunlu?
Sonlu olması, adımlarının belirli olması ve tekrar tekrar aynı sonucu vermesi.
İki algoritma nasıl karşılaştırılıyor?
Algoritmik karmaşıklık, yani Big O gösterimi üzerinden.
Şifreleme algoritması da aynı mı?
Sözlük kriptografik algoritmayı aynı çatı altında ayrı bir madde olarak tanımlıyor.
Özetle
Algoritma, bir problemi çözmek için sonlu ve belirli adımlardan oluşan talimat kümesi. Kendi kendine yetmesi ve tekrarlanabilir olması temel nitelikleri. Aynı işi yapan yöntemler arasındaki fark, girdi büyüdükçe ortaya çıkıyor; karşılaştırma da algoritmik karmaşıklıkla yapılıyor. Kavram bilgisayara özgü değil; yemek tarifi de bir algoritma.
Sisteminizde veri on kat büyüdüğünde hangi adım ilk yavaşlar, biliyor musunuz?
Güncelleme: 3 Eylül 2026. RFC 4949 Internet Güvenlik Sözlüğü ve MDN Algorithm sözlük maddesi kontrol edildi.
Dijital Dünyanıza Yön Veren Pusula