“Algoritma” kelimesini sosyal medya haberlerinden duymuşsundur: “Instagram algoritması değişti”, “algoritma bunu öne çıkarıyor”. Kulağa gizemli geliyor ama aslında her gün kullandığın bir şey: bir işi yapmak için sırası belli, açık adımlar.
Kısa tanım
Algoritma, bir problemi çözmek ya da bir işi tamamlamak için izlenen, sırası belli ve sonunda biten adımlar dizisidir. Bilgisayar programları algoritmaların bir programlama diliyle yazılmış hâlidir.
Bir yemek tarifi gibi
Bir çay demleme tarifini düşün:
- Çaydanlığa su koy ve kaynat.
- Demliğe iki tatlı kaşığı çay koy.
- Kaynayan suyu demliğe dök.
- Demliği çaydanlığın üstüne koy, 10-15 dakika demlenmeye bırak.
Bu bir algoritma. Adımların sırası önemli (suyu kaynatmadan demliğe dökemezsin), her adım açık ve sonunda bitiyor. Bilgisayar için yazılan bir algoritmanın tek farkı, adımların çok daha kesin olması gerektiği: “biraz çay koy” bir insana yeter, bilgisayara yetmez.
İyi bir algoritmanın özellikleri
- Açık: Her adım tek bir şekilde anlaşılır.
- Sıralı: Hangi adımın önce geldiği bellidir.
- Sonlu: Bir noktada biter; sonsuza kadar dönmez.
- Doğru: Her olası girdi için istenen sonucu verir.
- Verimli: İşi gereksiz adımlarla uzatmaz.
Python’da küçük bir algoritma: en yüksek not
Bir listedeki en yüksek notu bulmak için adımları önce Türkçe yazalım:
- İlk notu “şimdiye kadarki en yüksek” kabul et.
- Geri kalan her notu tek tek kontrol et.
- Daha büyük bir not görürsen “en yüksek”i onunla değiştir.
- Liste bitince elindeki “en yüksek” cevaptır.
Aynı adımlar Python’da:
notlar = [70, 85, 40, 90, 65]en_yuksek = notlar[0] # 1. adımfor n in notlar: # 2. adım if n > en_yuksek: # 3. adım en_yuksek = nprint(en_yuksek) # 4. adım: 90
Python’da bu iş için hazır bir fonksiyon var: max(notlar). Ama hazır fonksiyonun arkasında da tam olarak bu adımları izleyen bir algoritma çalışıyor. Buradaki for ve if‘i Python Dersi 5 ve 6’da anlattım.
Aynı iş, farklı algoritmalar: sayı tahmin oyunu
Bir arkadaşın 1 ile 100 arasında bir sayı tuttu. Her tahmininde sana sadece “daha büyük” ya da “daha küçük” diyor. Nasıl tahmin edersin?
Birinci yol: sırayla dene. 1 mi? 2 mi? 3 mü? Sayı 73’se 73 tahmin yaparsın. Buna doğrusal arama deniyor.
İkinci yol: her seferinde ikiye böl. Önce 50 de. “Daha büyük” derse 51 ile 100 arasının ortasını (75) söyle. “Daha küçük” derse 51 ile 74’ün ortasını söyle. Her tahmin, kalan aralığı yarıya indiriyor. Buna ikili arama (binary search) deniyor.
Bu iki yöntem Python’da yazılıp tahminler sayıldığında sonuç şöyle:
| Aralık | Tutulan sayı | Sırayla deneme | İkiye bölme |
|---|---|---|---|
| 1 – 100 | 73 | 73 tahmin | 6 tahmin |
| 1 – 1.000.000 | 999.999 | 999.999 tahmin | 19 tahmin |
Aralık 10.000 kat büyüdü, ikili aramanın tahmin sayısı 6’dan sadece 19’a çıktı. Bir milyonluk aralıkta bile 20 tahmin her zaman yetiyor. Algoritma seçimi işte bu yüzden önemli: ikisi de doğru cevabı buluyor, ama biri saniyede, diğeri saatlerce sonra.
Tek bir şartı var: ikili arama ancak sıralı bir listede çalışır. Telefon rehberinde bir ismi bulurken ortadan açıp “daha ileride mi, geride mi?” diye bakman da aynı fikir; rehber alfabetik olduğu için işe yarıyor.
Günlük hayattaki algoritmalar
- Harita uygulamaları iki nokta arasındaki en kısa ya da en hızlı yolu bir algoritmayla hesaplıyor.
- Sosyal medya akışı hangi gönderiyi önce göstereceğine bir sıralama algoritmasıyla karar veriyor. “Algoritma değişti” denince kast edilen bu sıralama kuralları.
- Öneri sistemleri (Netflix, Spotify, YouTube), geçmişte izlediklerine ya da dinlediklerine bakarak sana ne önereceğini seçiyor.
- Arama motorları milyonlarca sayfa arasından aramana en uygun olanları sıralıyor.
Bir cümlede
Algoritma, bir işi yapmanın sırası belli, açık adımlarıdır; aynı bilgisayarda bir işin saniyeler mi saatler mi süreceğini çoğu zaman seçilen algoritma belirler.





