CodeBlanks Logo Icon CodeBlanks

Karmaşıklık karşılaştırma

O(1), O(log n), O(n), O(n log n), O(n^2) karmaşıklıklarını hızdan yavaşa sıralamayı öğrenirsin.

Karmaşıklık karşılaştırma

Big-O değerlerini hızdan yavaşa sıralayalım: O(1) < O(log n) < O(n) < O(n log n) < O(n^2) < O(2^n). O(1) en hızlıdır.

O(1) girdi ne kadar büyük olursa olsun sabit sürede çalışır. O(n^2) ise girdi iki katına çıkınca süre dört katına çıkar.

En kötü ve en iyi durum

Bir algoritmanın en kötü durumu en uzun süren girdidir; en iyi durum en kısa süren girdidir.

Doğrusal aramada hedef ilk elemandaysa en iyi O(1), son elemandaysa en kötü O(n)'dir. Big-O genelde en kötüyü ifade eder.

Uygulama Dizi uzunluğu

count_items(arr) yaz. Eleman sayısını for ile say ve döndür. print(count_items([4, 5, 6])) ile 3 yazdır.

Başlangıç kodu

solution.py
def count_items(arr):
    # Eleman say

Örnek çözüm

solution.py
def count_items(arr):
    # Eleman say
    count = 0
    for x in arr:
        count = count + 1
    return count
print(count_items([4, 5, 6]))

Beklenen çıktı

3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Karmaşıklık karşılaştırma: kavramları eşleştir

Kavram Anlamı
O(1) Sabit
O(n) Doğrusal
O(n^2) Karesel
O(log n) Logaritmik

2 Hangisi en yavaş büyümedir?

  • O(1)
  • O(log n)
  • O(n^2) Doğru cevap
  • O(n)

Açıklama: O(n^2) en yavaş büyümedir.

3 En kötü durum

Soru
Big-O genelde ____ durumu ifade eder.
Cevap
Big-O genelde en kötü durumu ifade eder.

Açıklama: en kötü doğru.

Başlangıç bölümündeki tüm dersler