CodeBlanks Logo Icon CodeBlanks

Zaman karmaşıklığı

Algoritmanın çalışma süresinin girdi boyusuyla nasıl büyüdüğünü öğrenirsin.

Zaman karmaşıklığı

Bir algoritmanın zaman karmaşıklığı, girdi boyutu büyüdükçe çalışma süresinin nasıl değiştiğini tanımlar. Girdi ne kadar büyükse algoritma o kadar uzun çalışır.

Örneğin bir diziyi baştan sona gezen algoritma n eleman için n adım atar; girdi iki katına çıkınca süre de iki katına çıkar.

Büyüme oranı

Farklı algoritmalar farklı büyüme oranlarına sahiptir. Bir algoritma girdiyi ikiye bölerken, başka bir algoritma her elemanı tek tek gezebilir.

Büyüme oranı, büyük girdilerde algoritmalar arasındaki farkı belirler. Düşük büyüme oranı daha verimli algoritmadır.

Uygulama Dizi toplamı

array_sum(arr) yaz. Elemanları topla ve döndür. print(array_sum([1, 2, 3, 4])) ile 10 yazdır.

Başlangıç kodu

solution.py
def array_sum(arr):
    # Elemanları topla

Örnek çözüm

solution.py
def array_sum(arr):
    # Elemanları topla
    total = 0
    for x in arr:
        total = total + x
    return total
print(array_sum([1, 2, 3, 4]))

Beklenen çıktı

10

Soru ve cevaplar

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

1 Zaman karmaşıklığı neyi ölçer?

  • Çalışma süresinin büyümesini Doğru cevap
  • Bellek kullanımını
  • Kod satır sayısını
  • Derleme süresini

Açıklama: Zaman karmaşıklığı sürenin büyümesini ölçer.

2 Büyüme oranı

Soru
Düşük büyüme oranı daha ____ algoritmadır.
Cevap
Düşük büyüme oranı daha verimli algoritmadır.

Açıklama: verimli doğru.

3 Zaman karmaşıklığı: kavramları eşleştir

Kavram Anlamı
Zaman karmaşıklığı Süre büyümesi
Girdi boyutu n
Büyüme oranı Verimlilik
Big-O Notasyon

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