CodeBlanks Logo Icon CodeBlanks

Özyineleme adımı

Problemi daha küçük aynı probleme bölerek çözmeyi öğrenirsin.

Recursion vs döngü

Birçok recursion problemi bir döngüyle de çözülebilir. Recursion daha okunaklı olabilir ama her çağrı yığın alanı kullanır.

Döngü genellikle daha az bellek kullanır. Recursion ise problemi bölerek düşünmeyi kolaylaştırır.

Çağrı yığını

Her recursive çağrı yığına bir çerçeve ekler. Taban duruma ulaşılınca çağrılar geri açılır ve her çerçeve sonucunu döndürür.

Çok derin recursion yığın taşmasına neden olabilir. Bu yüzden çok büyük girdiler için döngü tercih edilir.

Uygulama Dizi uzunluğu (recursive)

length_recursive(arr) yaz. Boş ise 0, değilse 1 + length_recursive(arr[1:]) döndür. print(length_recursive([4, 5, 6, 7])) ile 4 yazdır.

Başlangıç kodu

solution.py
def length_recursive(arr):
    # Uzunluğu hesapla

Örnek çözüm

solution.py
def length_recursive(arr):
    # Uzunluğu hesapla
    if len(arr) == 0:
        return 0
    return 1 + length_recursive(arr[1:])
print(length_recursive([4, 5, 6, 7]))

Beklenen çıktı

4

Soru ve cevaplar

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

1 Özyineleme adımı: kavramları eşleştir

Kavram Anlamı
Recursion Yığın kullanır
Döngü Daha az bellek
Yığın taşması Çok derin
Taban durum Durdurur

2 Recursion ne kullanır ki döngü kullanmaz?

  • Yığın alanı Doğru cevap
  • Döngü
  • Hash tablosu
  • Ağaç

Açıklama: Recursion yığın alanı kullanır.

3 Yığın taşması

Soru
Çok derin recursion ____ neden olur.
Cevap
Çok derin recursion yığın taşması neden olur.

Açıklama: yığın taşması doğru.

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