📊 Rekürsif Analiz - Kısa Notlar

📊 Rekürsif Analiz - Kısa Notlar 🔄 Yerine Koyma Metodu (Substitution) Ne Zaman Kullanılır? T(n) = T(n-1) + f(n) tipindeki rekürsiyonlar için Örnek: T(n) = T(n-1) + n Adımlar: T(n) = T(n-1) + n = T(n-2) + (n-1) + n = T(n-3) + (n-2) + (n-1) + n = ... = T(0) + [1 + 2 + 3 + ... + n] k adım sonra: T(n) = T(n-k) + [(n-k+1) + ... + n] Taban duruma ulaş: n-k = 0 → k = n ...

November 2, 2025 · 3 min · Emrullah Enis Çetinkaya

🔄 Sıralama Algoritmaları

🔄 Sıralama Algoritmaları 📋 İçindekiler Bubble Sort Selection Sort Insertion Sort Merge Sort Quick Sort 🫧 Bubble Sort Çalışma Mantığı Yan yana elemanları karşılaştırarak büyük elemanları sona doğru “yüzdürür”. Her turda en büyük eleman yerine yerleşir. Adımlar Dizinin başından itibaren yan yana elemanları karşılaştır Soldaki sağdakinden büyükse yer değiştir Dizinin sonuna kadar devam et Her turda bir eleman daha yerine oturur Tüm dizi sıralanana kadar tekrarla Görsel Gösterim [5, 3, 8, 4, 2] → İlk durum [3, 5, 4, 2, 8] → 1. tur (8 yerine oturdu) [3, 4, 2, 5, 8] → 2. tur (5 yerine oturdu) [3, 2, 4, 5, 8] → 3. tur [2, 3, 4, 5, 8] → Sıralı ✓ Komplekslik Zaman: O(n²) - En kötü ve ortalama Zaman: O(n) - En iyi durum (zaten sıralıysa) Alan: O(1) - Yerinde sıralama Kullanım Alanları Küçük veri setleri Eğitim amaçlı Neredeyse sıralı diziler için 🎯 Selection Sort Çalışma Mantığı Her adımda dizinin geri kalanından en küçük elemanı bulup başa yerleştirir. ...

November 4, 2025 · 4 min · Emrullah Enis Çetinkaya

Stack (Yığın) Veri Yapısı

📚 Stack (Yığın) Veri Yapısı 🎯 Stack Nedir? Stack (Yığın), Last-In-First-Out (LIFO) prensibiyle çalışan soyut bir veri yapısıdır. Yani son eklenen eleman, ilk çıkarılır. Günlük Hayattan Örnek Bir tabak yığınını düşünün: Yeni tabakları en üste koyarsınız Tabak alırken de en üsttekini alırsınız En alttaki tabağa ulaşmak için üstteki tüm tabakları kaldırmanız gerekir ┌───────┐ │ 3 │ ← En üst (Top) - İlk çıkarılacak ├───────┤ │ 2 │ ├───────┤ │ 1 │ ← En alt └───────┘ 🔧 Temel Operasyonlar 1️⃣ push(E e) - Ekleme Element yığının en üstüne eklenir. ...

November 4, 2025 · 4 min · Emrullah Enis Çetinkaya

Hash Tabloları

Hash Tabloları 📌 Neden Hash Tabloları? Binary Search’ün Özellikleri: Worst-case: O(log n) - çok verimli Gereksinimler: Sıralı veri + Doğrudan erişim Sıralı ekleme: O(n) - pratik olarak yavaş Hash Tabloları ile İyileştirme: Ekleme: Genelde O(1), worst-case O(n) Arama: Genelde O(1), worst-case O(n) 🔑 Hash Fonksiyonu Hash fonksiyonu, bir anahtarı (key) tablo indeksine dönüştürür. String için Örnek Hash Fonksiyonu public static int hash(String wort) { int m = 13; // Tablo boyutu (asal sayı olmalı) int k = 0; for (int i = 0; i < wort.length(); i++) { k += (int) wort.charAt(i); // ASCII/Unicode değerlerinin toplamı } return k % m; // Modulo ile indeks hesaplama } Hash Fonksiyonunun Özellikleri Uzay U (Sonsuz anahtar uzayı) ↓ Hash Fonksiyonu h(k) ↓ Hash Tablosu T [0...m-1] (Sonlu alan) Evrensel küme (U): Tüm olası anahtarlar Anahtar kümesi (S): Gerçekte kullanılan anahtarlar Hash tablosu (T): Sabit boyutlu m elemanlı dizi Önemli: Hash fonksiyonları genelde injektif değildir (farklı anahtarlar aynı indeksi verebilir) ⚠️ Önemli Not Tablo boyutu asal sayı olmalı! Bu, daha iyi dağılım sağlar. ...

November 4, 2025 · 3 min · Emrullah Enis Çetinkaya