Rekursiya nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Rekursiya, bir obyekt və ya prosesin özünü vasitəsilə müəyyən edildiyi və ya icra olunduğu bir üsuldur. Proqramlaşdırmada, bu, birbaşa və ya dolayı yolla özünü çağıran funksiyadır.
Rekursiv funksiyanın əsas komponentləri:
- Əsas hal (Base Case): Rekursiyanın sona çatdığı şərt. Bu, sonsuz dövrü qarşısını alır.
- Rekursiv addım (Recursive Step): Funksiya özünü çağırdığı və alt vəzifəni həll etdiyi addımdır; bu, əsas halə çatmaq üçün kiçikləşdirilmiş vəzifədir.
Bir sayın faktorialını rekursiya ilə hesablama nümunəsi:
def factorial(n):
# Əsas hal: 0 və ya 1-in faktorialı 1-dir
if n == 0 or n == 1:
return 1
# Rekursiv addım: n! = n * (n-1)!
else:
return n * factorial(n - 1)
# Nümunə çağırış
# nəticə = factorial(5) # Nəticə: 120
Rekursiya, ağacların keçilməsi və bəzi sıralama alqoritmləri kimi rekursiv quruluşu olan tapşırıqlar üçün kodu daha şık edə bilər. Ancaq, çağrı yığını səbəbindən daha çox yaddaş istifadə edə bilər və bəzi hallarda iterativ həllərlə müqayisədə daha az səmərəli ola bilər.
İterasiya ilə müqayisə:
| Tərəf | Rekursiya | İterasiya |
|---|---|---|
| Yaddaş | Daha çox yaddaş istifadə edə bilər (çağrı yığını) | Adətən daha az yaddaş tələb edir |
| Performans | Bəzi hallarda daha yavaş ola bilər | Adətən daha proqnozlaşdırıla bilən performans |
| Oxunaqlıq | Rekursiv tapşırıqlar üçün daha aydın ola bilər | Sadə tapşırıqlar üçün daha çox aydın olur |
| Nəzarət | Döngü üzərində daha az açıq nəzarət (yığın) | Döngülər vasitəsilə açıq nəzarət (for, while) |
QA avtomatlaşdırmasında, rekursiya, məsələn, veb səhifədəki iç-içə elementləri keçmək və ya strukturlaşdırılmış məlumatlar (JSON, XML) içində müəyyən elementi tapmaq və ya yoxlamaq üçün istifadə edilə bilər.