🎓 Boğaziçi Üniversitesi öğrencileri tarafından hazırlandı

Özyineleme (Recursion) Nedir?

Özyineleme, bir fonksiyonun aynı problemin daha küçük bir versiyonunu çözmek için kendi kendini çağırdığı bir tekniktir. Her özyinelemeli fonksiyonun, çağrıları durduran bir taban durumu (base case) ve ona doğru ilerleyen bir özyinelemeli duruma ihtiyacı vardır.

Kısa cevap

Özyineleme, bir fonksiyonun bir problemi taban duruma ulaşana kadar daha küçük, aynı yapıdaki alt problemlere bölmek için kendini çağırmasıdır; taban duruma ulaşınca sonuçlar geriye doğru birleştirilir.

factorial(4) için çağrı yığını (call stack)
  1. 1
    factorial(4)
    factorial(3)'ü çağırır, sonucunu bekler
  2. 2
    factorial(3)
    factorial(2)'yi çağırır, sonucunu bekler
  3. 3
    factorial(2)
    factorial(1)'i çağırır, sonucunu bekler
  4. 4
    factorial(1)
    factorial(0)'ı çağırır, sonucunu bekler
  5. 5
    factorial(0) — taban durum
    doğrudan 1 döndürür, başka çağrı yok
  6. 6
    Geri sarma
    1×1=1, 2×1=2, 3×2=6, 4×6=24 → nihai sonuç 24
01

Adım adım çözümlü örnekler

factorial(5)'i özyinelemeli olarak hesapla.

factorial(5) = 5 × factorial(4)
factorial(4) = 4 × factorial(3)
factorial(3) = 3 × factorial(2)
factorial(2) = 2 × factorial(1)
factorial(1) = 1 × factorial(0) = 1 × 1 = 1
Geri sarma: 2×1=2, 3×2=6, 4×6=24, 5×24=120
factorial(5) = 120

[3, 5, 2] listesinin toplamını özyinelemeyle bul.

sum([3,5,2]) = 3 + sum([5,2])
sum([5,2]) = 5 + sum([2])
sum([2]) = 2 + sum([]) = 2 + 0 = 2
Geri sarma: 5+2=7, 3+7=10
Sonuç: 10

F(n) = F(n-1) + F(n-2), F(0)=0, F(1)=1 tanımıyla Fibonacci(5)'i bul.

F(2) = F(1)+F(0) = 1+0 = 1
F(3) = F(2)+F(1) = 1+1 = 2
F(4) = F(3)+F(2) = 2+1 = 3
F(5) = F(4)+F(3) = 3+2 = 5
Sonuç: F(5) = 5
02

Bilgi kartları

03

Mini test

S1.Özyinelemeli bir fonksiyondaki taban durum nedir?

Doğru cevap: B. Taban durum, başka bir özyinelemeli çağrı olmadan doğrudan cevaplanabilen en basit girdidir ve zinciri durdurur.

S2.Özyinelemeli bir fonksiyonun taban durumu yoksa ne olur?

Doğru cevap: B. Taban durum olmadan fonksiyon kendini çağırmayı asla bırakmaz ve çağrı yığınını tüketir.

S3.factorial(4) = 4 × factorial(3) ifadesinde factorial(3) neye denir?

Doğru cevap: B. factorial(3), fonksiyonun kendisini daha küçük bir girdiyle çağırması olan özyinelemeli çağrıdır.

S4.F(n) = F(n-1) + F(n-2), F(0)=0, F(1)=1 ise F(4) kaçtır?

Doğru cevap: B. F(2)=1, F(3)=2, F(4)=F(3)+F(2)=2+1=3.
📄Bu konuyu PDF çalışma kağıdı olarak indirKonu özeti + 10 soru + cevap anahtarı — sınıfta paylaş, yazdır.
Bounlu uygulamalarıyla daha iyi çalış
Notek
Notek

“Özyineleme (Recursion) Nedir?” için tüm kartlar, çözümlü adımlar ve AI hoca desteği Notek'te — sınavdan önce elle çalış.

Ücretsiz indir
Notek 1Notek 2Notek 3Notek 4Notek 5
04

Sık yapılan hatalar

Taban durum yazmayı unutmak.Doğrusu: Her zaman önce taban durumu tanımla — özyinelemeyi sonsuza kadar çalışmaktan gerçekten alıkoyan odur.

Özyinelemeli durumun taban duruma doğru ilerlemesi gerekmediğini sanmak.Doğrusu: Her özyinelemeli çağrı problemi küçültmelidir (ör. n-1) ki sonunda taban duruma ulaşılsın.

Özyinelemenin her zaman döngüden daha hızlı olduğunu düşünmek.Doğrusu: Özyineleme genellikle daha fazla bellek kullanır (çağrı yığını) ve eşdeğer yinelemeli döngüden daha yavaş olabilir.

Özyinelemeli çağrıların 'paralel' gerçekleştiğini varsaymak.Doğrusu: Özyinelemeli çağrılar sıralı gerçekleşir — her çağrı kendi özyinelemeli çağrısı dönene kadar bekler (duraklar).

05

Sıkça sorulan sorular

Özyineleme (recursion) nedir?

Özyineleme, bir fonksiyonun taban duruma ulaşana kadar aynı problemin daha küçük bir versiyonuyla kendini çağırmasıdır.

Özyineleme formülü nedir?

Tek bir formül yoktur, ama kalıp her zaman şudur: taban durum (doğrudan cevap) + özyinelemeli durum (kendini daha küçük girdiyle çağırma), ör. n! = n × (n−1)!, 0! = 1.

Özyineleme örnekleri nelerdir?

Faktöriyel, Fibonacci sayıları, bir listenin toplamını alma, ağaç dolaşımı ve özyinelemeli binary search algoritması.

Özyinelemeli bir fonksiyon elle nasıl hesaplanır?

Her çağrı taban duruma ulaşana kadar açılır, doğrudan değeri bulunur, sonra her seviyede sonuçlar çarpılıp/toplanarak geriye doğru 'sarılır'.

İlgili konular