Zaman karmaşıklığı
- Algoritmalar kursu
- Başlangıç
- Ders 5/80
- 4 dk
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
def array_sum(arr):
# Elemanları toplaÖrnek çözüm
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ı
Düşük büyüme oranı daha ____ algoritmadır.
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 |