Sobes.tech
Intern

Kas ir rekursija?

sobes.tech AI

Atbilde no AI

Rekursija ir process, kad funkcija izsauc pati sevi. Programmēšanā, rekursīva funkcija ir tāda, kas tieši vai netieši izsauc pati sevi. Lai izvairītos no bezgalīgas cilpas, rekursīvai funkcijai jābūt pamatam gadījumam (base case), kurā tā pārtrauc sevis izsaukšanu.

Piemēri lietošanai:

  • Datu struktūru pārlūkošana (piemēram, koki).
  • Problēmu risināšana, kuras var sadalīt mazākās tāda paša veida uzdevumos (piemēram, faktoriāla aprēķināšana).

Faktoriāla aprēķins ar rekursiju:

def factorial(n):
  # Pamatgads: 0 faktoriāls ir 1
  if n == 0:
    return 1
  # Rekursīvais gadījums: n faktoriāls = n * (n-1) faktoriāls
  else:
    return n * factorial(n - 1)

# Lietošanas piemērs
result = factorial(5)
# rezultāts būs 120

Rekursijas trūkumi:

  • Var patērēt daudz atmiņas, jo tiek izmantots izsaukumu steks.
  • Dažos gadījumos var būt mazāk efektīva nekā iteratīvi risinājumi.
  • Gados dziļas rekursijas izsaukumos var notikt steka pārpildīšanās.