Intern
Recursion nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kendi kendine çağrı yapan fonksiyon.
Orijinal probleme benzer yapıya sahip alt problemlere bölünebilen sorunları çözmek için kullanılır. Sonsuz döngüyü önlemek için çıkış koşulunun (temel durum) olması gerekir.
Faktöriyel hesaplama örneği:
<?php
function factorial(int $n): int
{
// Temel durum
if ($n <= 1) {
return 1;
}
// Özyinelemeli çağrı
return $n * factorial($n - 1);
}
echo factorial(5); // 120 yazdırır
?>
Avantajlar:
- Belirli problemler için kodun zarifliği ve sadeliği.
Dezavantajlar:
- Çok derin özyineleme seviyelerinde yığın taşmasıyla sonuçlanabilir.
- İşlev çağrıları üzerindeki ek maliyetler nedeniyle aynı problemler için yinelemeli çözümlerden daha az verimli olabilir.
Ağaçlar, dosya sistemleri üzerinde gezinmek, kombinatorik problemleri çözmek gibi durumlarda sıkça kullanılır.