Algoritma Nedir?
Bir problemi çözmek için izlenen sonlu, sıralı, kesin adımlar bütünü. Kod yazmadan önce, sandviç yaparken bile farkında olmadan algoritma kuruyoruz.
01Reel Hayattan Bir Örnek: Sandviç Yapmak
Bir arkadaşınız daha önce mutfak görmedi ve sizden “sandviç yap” istedi. Ona tarif verirken aslında bir algoritma yazıyorsunuz — adımlar sıralı, her adım net, sonuç belirli.
- 1. Ekmeği tezgâha koy
- 2. Marulu yıka, iki yaprak ayır
- 3. Domatesi yuvarlak dilimle
- 4. Peyniri ekmeğin üstüne koy
- 5. Domates dilimini peynirin üstüne yerleştir
- 6. Marul yapraklarını ekle
- 7. Salam dilimlerini marulun üstüne diz
- 8. İkinci ekmeği kapat
- 9. Sandviçi ikiye böl
Bu adımları sırasıyla uyguladığınızda sonuç her zaman aynıdır. Adımları karıştırırsanız (peyniri altta, ekmeği ortada) ya da atlarsanız (marulu unutursanız) farklı sonuç çıkar. Bir bilgisayar da kodunuzdaki adımları aynı şekilde takip eder — sırası, kesinliği ve sonuçluluğu önemlidir.
02Algoritma Örnekleri — 0–10 Arası Tek / Çift Sınıflandır
Basit bir algoritma: 0'dan 10'a kadar her sayıyı al, 2'ye bölümünden kalan 0 mı diye bak. Kalan 0 ise çift, değilse tek.
Pseudo Kod
BAŞLA
n = 0
TEKRARLA WHILE n < 11:
EĞER n % 2 == 0 İSE:
YAZ("çift:", n)
DEĞİLSE:
YAZ("tek:", n)
n = n + 1
BİTİRPython Karşılığı
pythonfor n in range(11): if n % 2 == 0: print(f"çift: {n}") else: print(f"tek: {n}")
03Akış Şeması Nasıl Çizilir? — Bubble Sort Örneği
Elimizde [5, 2, 8, 1, 4] listesi var. Her adımda yan yana iki elemanı karşılaştır, soldaki büyükse yer değiştir. Liste tamamen sıralanana kadar devam et.
Adım Adım Çalışma
Pseudo Kod
FONKSİYON bubble_sort(liste):
n = uzunluk(liste)
DÖNGÜ i = 0 DAN n − 1 KADAR:
DÖNGÜ j = 0 DAN n − i − 2 KADAR:
EĞER liste[j] > liste[j+1] İSE:
takas(liste[j], liste[j+1])
DÖNDÜR liste
bubble_sort([5,2,8,1,4]) // → [1,2,4,5,8]Python Karşılığı
pythondef bubble_sort(liste): n = len(liste) for i in range(n): for j in range(n - i - 1): if liste[j] > liste[j+1]: liste[j], liste[j+1] = liste[j+1], liste[j] return liste print(bubble_sort([5,2,8,1,4])) # [1, 2, 4, 5, 8]
04Algoritma Neden Önemli?
Bilgisayar ne kadar hızlı olursa olsun, kötü bir algoritma sonsuza kadar bekletebilir. İyi bir algoritma ise milyonlarca veriyi saniyeler içinde işler. Sıralama örneğinde fark çok net:
- 1
Performans — Doğru Algoritma Zaman Kazandırır
10.000 öğrenciyi sıralamak: Bubble sort ~5 saniye, Merge sort ~0.05 saniye. Aynı işlem, 100 kat fark.
- 2
Ölçeklenebilirlik — Büyük Veri İçin Tek Çıkış
100 müşteriyle çalışan brute force, 100 milyon müşteriyle patlar. İyi algoritma, veri 1000 kat büyüse bile çalışmaya devam eder.
- 3
Problem Çözme Disiplini
Kod yazmadan önce düşünmeyi öğretir. Problemi parçalara ayırır, her parçayı sırayla çözersin. Bu disiplin sadece yazılımda değil, hayatta da işe yarar.
- 4
Mülakat ve Kariyer
Yazılım mülakatlarının %60'ı algoritma sorusudur. Mülakatı geçmek için değil, gerçek mühendislik problemlerini çözmek için algoritmik düşünme şart.
- 5
Dil ve Platformdan Bağımsız
Bir algoritmayı Python'da da yazsan, JavaScript'te de, Rust'ta da aynı mantık çalışır. Algoritma düşünmek, her dilde geçerli bir süper güçtür.
05Sıkça Sorulan Sorular
Algoritma hakkında en sık sorulan sorular — kısa ve net cevaplarla.
Algoritma ne demek?
+
Algoritma, bir problemi çözmek veya bir hedefe ulaşmak için izlenen sonlu, sıralı, kesin adımlar bütünüdür. Her bilgisayar programı, her yemek tarifi, her yol tarifi aslında bir algoritmadır.
Algoritma ile program arasındaki fark nedir?
+
Algoritma, yapılacak işin adımlarını söyler (mantık). Program ise o adımların belirli bir programlama dilinde yazılmış halidir. Aynı algoritma Python'da, JavaScript'te veya C'de yazılabilir — mantık değişmez, dil değişir.
Algoritma örnekleri nelerdir?
+
Günlük hayattan: yemek tarifi, yol tarifi, çamaşır yıkama adımları. Yazılımdan: sıralama (bubble sort, merge sort), arama (binary search), veri sıkıştırma (Huffman), graf algoritmaları (Dijkstra). Bu rehberde sandviç yapımı ve bubble sort örnek olarak anlatıldı.
Akış şeması nasıl çizilir?
+
Akış şeması 4 temel sembolden oluşur: yuvarlak/dikdörtgen (başla/bitir), paralelkenar (giriş/çıkış), dikdörtgen (işlem), eşkenar dörtgen (karar). Adımları bu sembollerle gösterip oklarla birleştirirsin. Detaylı örnek için bu yazıdaki 'Bubble Sort' bölümüne bak.
Algoritma neden bu kadar önemli?
+
İki nedeni var: (1) Performans — iyi algoritma 100 kat hızlı çalışır. (2) Problem çözme disiplini — büyük problemi küçük parçalara bölmeyi öğretir. Yazılım mülakatlarının %60'ı algoritma sorusudur.
Hangi programlama dilinde algoritma öğrenilmeli?
+
Python en iyi başlangıç — söz dizimi sade, kütüphane zengin. Ama algoritma mantığı dil bağımsızdır. Aynı bubble sort'u JavaScript, Java veya C ile de yazabilirsin. Önemli olan dil değil, düşünce biçimi.
06Sonuç — Kanaat
Algoritma, yazılımın ne yapacağını söyleyen reçetedir. Kod ise o reçetenin yazıldığı bir dil. Dili öğrenmek kolaydır — reçete yazmak yıllar alır.
Bugün iki basit örnek gördük: tek-çift ayrımı (döngü + karar yapısı) ve bubble sort (iç içe döngü + yer değiştirme). Bu ikisi, yazılım dünyasındaki her algoritmanın yapı taşı.
Bir sonraki adım: Bu örnekleri kendi elinle yaz, akış şemasını kâğıda çiz, adımları sayarak yürü. Algoritma düşünmek bir kas gibi — her gün biraz çalışırsan, bir gün gelir mülakatlarda, projelerinde, hayatın içinde kendiliğinden devreye girer.