Array İşlemleri - Performans Analizi
📊 Temel Array İşlemleri ve Zaman Karmaşıklıkları
1. ➕ Ekleme İşlemi (Insert)
Zaman Karmaşıklığı: O(n)
Örnek Senaryo:
Başlangıç: [3, 8, 6, 7]
İşlem: 1. pozisyona 5 ekle
Sonuç: [3, 5, 8, 6, 7]
İşlem Adımları:
Adım 1: [3, 8, 6, 7, _]
↓
Adım 2: [3, _, 8, 6, 7] ← Elemanları kaydır
↓
Adım 3: [3, 5, 8, 6, 7] ← Yeni elemanı ekle
Neden O(n)?
- ✓ Yeni eleman ekleme: O(1) - sabit süre
- ✓ Sağdaki elemanları kaydırma: O(n) - n adım gerekir
- Toplam: O(n)
2. ➖ Silme İşlemi (Delete)
Zaman Karmaşıklığı: O(n)
Örnek Senaryo:
Başlangıç: [3, 8, 6, 7]
İşlem: 1. pozisyondaki elemanı sil
Sonuç: [3, 6, 7, null]
İşlem Adımları:
Adım 1: [3, 8, 6, 7]
↓ sil
Adım 2: [3, _, 6, 7]
↓
Adım 3: [3, 6, 7, _] ← Sağdaki elemanları sola kaydır
Neden O(n)?
- Silinen pozisyonun sağındaki tüm elemanlar bir pozisyon sola kaydırılmalı
- En kötü durum: İlk eleman silinirse → n-1 eleman kaydırılır
3. 🔍 Erişim İşlemi (Access)
Zaman Karmaşıklığı: O(1)
Örnek:
Array: [3, 8, 6, 7]
Erişim: mein_array[1]
Sonuç: 8
Doğrudan Erişim:
┌───┬───┬───┬───┐
│ 3 │ 8 │ 6 │ 7 │
└───┴───┴───┴───┘
0 1 2 3 ← indeksler
↑
O(1) - Anında erişim!
Neden O(1)?
- Array’ler bellekte ardışık tutulur
- İndeks ile doğrudan hesaplama:
adres = başlangıç + (indeks × eleman_boyutu) - Kaydırma veya arama gerekmez
📈 Karşılaştırma Tablosu
| İşlem | Zaman Karmaşıklığı | Açıklama |
|---|---|---|
| Ekleme | O(n) | Elemanları kaydırma gerekir |
| Silme | O(n) | Elemanları kaydırma gerekir |
| Erişim | O(1) | Doğrudan indeks erişimi |
| Arama | O(n) | Sıralı değilse tüm array taranır |
💡 Önemli Notlar
⚠️ En kötü durum senaryoları:
- Ekleme: Başa ekleme → Tüm elemanlar kaydırılır
- Silme: Baştan silme → Tüm elemanlar kaydırılır
✅ Array’lerin avantajı:
- Rastgele erişim çok hızlı (O(1))
- Cache-friendly (bellekte yan yana)
❌ Array’lerin dezavantajı:
- Ekleme/silme maliyetli (O(n))
- Sabit boyut (dinamik değil)
🎯 Pratik İpucu
Eğer çok fazla ekleme/silme yapılacaksa: → Linked List gibi başka veri yapıları tercih edilmeli!
Eğer çok fazla okuma/erişim yapılacaksa: → Array ideal seçimdir! ✨