logo

Kas yra Rekursija?

Rekursija apibrėžiamas kaip procesas, kuris save vadina tiesiogiai arba netiesiogiai, o atitinkama funkcija vadinama rekursine funkcija.

jvm java

Rekursijos savybės:

Rekursija turi keletą svarbių savybių. Kai kurie iš jų paminėti toliau:



  • Pirminė rekursijos savybė yra galimybė išspręsti problemą suskaidant ją į smulkesnes dalis, kurių kiekvieną galima išspręsti vienodai.
  • Rekursyvinė funkcija turi turėti bazinį dydį arba sustabdymo kriterijus, kad būtų išvengta begalinės rekursijos.
  • Rekursija apima tos pačios funkcijos iškvietimą savyje, o tai veda į skambučių krūvą.
  • Atminties ir našumo požiūriu rekursinės funkcijos gali būti mažiau veiksmingos nei kartotiniai sprendimai.

Rekursijos tipai:

    Tiesioginė rekursija: kai funkcija iškviečiama savyje tiesiogiai, ji vadinama tiesiogine rekursija. Tai dar galima suskirstyti į keturis tipus:
    • Uodegos rekursija,
    • Galvos rekursija,
    • Medžių rekursija ir
    • Įdėta rekursija.
    Netiesioginė rekursija: netiesioginė rekursija įvyksta, kai funkcija iškviečia kitą funkciją, kuri galiausiai iškviečia pradinę funkciją ir sudaro ciklą.

Norėdami sužinoti daugiau apie rekursijos tipus, žr Šis straipsnis .

Rekursijos programos:

Rekursija naudojama daugelyje kompiuterių mokslo ir matematikos sričių, kurios apima:

java do while ciklas
  • Paieškos ir rūšiavimo algoritmai: rekursiniai algoritmai naudojami ieškant ir rūšiuojant duomenų struktūras, pvz., medžius ir grafikus.
  • Matematiniai skaičiavimai: Rekursyvūs algoritmai naudojami sprendžiant tokias problemas kaip faktorialas, Fibonačio seka ir kt.
  • Kompiliatoriaus dizainas: Rekursija naudojama kuriant kompiliatorius, kad būtų galima analizuoti ir analizuoti programavimo kalbas.
  • Grafika: daugelis kompiuterinės grafikos algoritmų, tokių kaip fraktalai ir Mandelbroto rinkinys, naudoja rekursiją sudėtingiems šablonams generuoti.
  • Dirbtinis intelektas: rekursyvūs neuroniniai tinklai naudojami natūralios kalbos apdorojimui, kompiuteriniam regėjimui ir kitoms AI programoms.

Rekursijos pranašumai:

  • Rekursija gali supaprastinti sudėtingas problemas, suskaidydama jas į mažesnes, lengviau valdomas dalis.
  • Rekursyvus kodas gali būti lengviau skaitomas ir lengviau suprantamas nei kartotinis kodas.
  • Rekursija yra būtina kai kuriems algoritmams ir duomenų struktūroms.
  • Be to, naudojant rekursiją, mes galime sumažinti kodo ilgį ir tapti lengviau skaitomu bei suprantamesniu vartotojui / programuotojui.

Rekursijos trūkumai:

  • Atminties ir našumo požiūriu rekursija gali būti mažiau efektyvi nei iteraciniai sprendimai.
  • Rekursyvių funkcijų derinimas ir supratimas gali būti sudėtingesnis nei iteraciniai sprendimai.
  • Rekursija gali sukelti dėklo perpildymo klaidas, jei rekursijos gylis yra per didelis.

Ką dar galite skaityti?