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.
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?
- Rekursijos tipai
- Rekursinės funkcijos