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ⁿ)