Özyineleme, bir fonksiyonun kendi kendini çağırması prensibine dayanan bir programlama tekniğidir.

Özyinelemenin Temel Bileşenleri

Her özyinelemeli fonksiyonun iki temel bileşeni olmalıdır:

1. Temel Durum (Base Case)

Özyinelemenin durduğu, fonksiyonun artık kendi kendini çağırmadığı durumdur. Bu durum, sonsuz döngüye girmeyi engeller.

2. Özyinelemeli Durum (Recursive Case)

Fonksiyonun kendi kendini, genellikle daha küçük bir girdiyle, tekrar çağırdığı durumdur.

Örnek: Faktöriyel Hesaplama

Faktöriyel matematiksel olarak özyinelemeli tanımlanabilir:

  • 0! = 1 (Temel Durum)
  • n! = n * (n-1)! (Özyinelemeli Durum)
FONKSİYON Faktoriyel(n)
  EĞER (n == 0) O ZAMAN
    DÖNDÜR 1 // Temel Durum
  DEĞİLSE
    DÖNDÜR n * Faktoriyel(n - 1) // Özyinelemeli Durum
  SON
SON_FONKSİYON
                    

Özyineleme Nasıl Çalışır?

Faktoriyel(3) çağrısı için:

  1. Faktoriyel(3) → 3 * Faktoriyel(2)
  2. Faktoriyel(2) → 2 * Faktoriyel(1)
  3. Faktoriyel(1) → 1 * Faktoriyel(0)
  4. Faktoriyel(0) → 1 (Temel Durum)
  5. Geri dönüş: 1 * 1 * 2 * 3 = 6

Özyineleme vs Döngüler

ÖzellikÖzyinelemeDöngü
OkunabilirlikDaha doğal (bazı problemler için)Daha basit
Bellek KullanımıDaha fazla (yığın)Daha az
PerformansDaha yavaş olabilirGenellikle daha hızlı

Özyineleme Ne Zaman Kullanılmalı?

  • Problemin özyinelemeli bir yapısı varsa
  • Ağaç ve graf yapılarında
  • Böl ve yönet algoritmalarında
  • Matematiksel problemlerde

Dikkat Edilmesi Gerekenler

  • Temel durum mutlaka olmalı
  • Yığın taşması riski
  • Performans değerlendirmesi