Bir algoritmanın etkinliğini değerlendirmek, sadece doğru sonuç üretip üretmediğine bakmakla kalmaz, aynı zamanda ne kadar hızlı çalıştığına ve ne kadar bellek kullandığına da bağlıdır.
Zaman Karmaşıklığı
Zaman karmaşıklığı, bir algoritmanın tamamlanması için gereken işlem süresinin, girdi boyutuna bağlı olarak nasıl değiştiğini ifade eder.
Yer Karmaşıklığı
Yer karmaşıklığı, bir algoritmanın çalışması sırasında ihtiyaç duyduğu bellek miktarının, girdi boyutuna bağlı olarak nasıl değiştiğini ifade eder.
Büyük O Notasyonu
Büyük O Notasyonu, bir algoritmanın çalışma süresinin veya bellek kullanımının, girdi boyutu büyüdükçe nasıl bir üst sınıra sahip olduğunu gösterir.
Yaygın Büyük O Notasyonları:
- O(1) - Sabit Zaman: Girdi boyutundan bağımsız
- O(log n) - Logaritmik Zaman: Çok yavaş artar
- O(n) - Doğrusal Zaman: Girdi boyutuyla doğru orantılı
- O(n log n) - Doğrusal-Logaritmik: Verimli sıralama algoritmaları
- O(n²) - Karesel Zaman: İç içe döngüler
- O(2ⁿ) - Üstel Zaman: Çok yavaş algoritmalar
Karşılaştırma
En hızlıdan en yavaşa: O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ)