Junior
Eyni vəzifəni rekursiya və dövr istifadə edərək həyata keçirmə arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Rekursiya problemi həll etmək üçün özünü çağıran funksiyanı istifadə edir və onu kiçik alt tapşırıqlara bölür, əsas halına çatana qədər. Döngə isə, müəyyən sayda və ya şərt yerinə yetirilənə qədər kod blokunu təkrarlayır.
| Xüsusiyyət | Rekursiya | Döngə |
|---|---|---|
| İcrası | Funksiya çağırışı | Təkrarlama (İterasiya) |
| Yaddaş | Çağrı yığını istifadə edir | Sayğac/şərt dəyişənləri istifadə edir |
| Oxunaqlıq | Bəzi tapşırıqlar üçün daha qısa ola bilər | Çox vaxt daha birbaşa olur |
| Performans | Çağırışların əlavə xərcləri səbəbindən yavaş ola bilər | Ümumiyyətlə daha səmərəli olur |
| Yığın daşması | Dərin rekursiyada daşma riski var | Risk yoxdur |
C# nümunəsi (faktoriyel):
Rekursiv tətbiq:
// Rekursiv faktoriyel hesablaması
int FactorialRecursive(int n)
{
if (n == 0)
{
return 1; // Əsas hal
}
return n * FactorialRecursive(n - 1); // Rekursiv çağırış
}
Döngü ilə tətbiq:
// Döngü ilə faktoriyel hesablaması
int FactorialIterative(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{
result *= i;
}
return result;
}