Sobes.tech
Junior

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.