Što je rekurzija?

U informatici mnogi problemi zahtijevaju strategiju zavadi pa vladaj. Tehnika rekurzije koristi ovu strategiju. U svom najjednostavnijem obliku, rekurzija je funkcija koja dijeli problem na manje probleme dok se ne može odrediti konačni proizvod. Računalstvo je utemeljeno na platformi matematike i logike. Rekurzija je već desetljećima dio ovog većeg okvira i može se naći u većini računalnih programskih jezika danas.

Dinamičko programiranje je implementacija rekurzije, koja razlaže problem na komponente. Ovaj proces omogućuje ugniježđenje problema unutar većih problema gdje svaki podproblem zahtijeva rezultat iz prethodnog problema. Ova vrsta funkcionalne rekurzije tipična je unutar manipulacije nizom.

Ovaj stil programiranja je koristan jer pojednostavljuje problem u komponente kojima se može upravljati. Također ima prednost modularnog razvoja softvera. Ovaj modularni pristup omogućuje stvaranje višekratnih komponenti u cijeloj računalnoj aplikaciji.

Rekurzija dobro funkcionira pri stvaranju sigurnosnih značajki unutar računalnih aplikacija. Svaki zaslon aplikacije može zahtijevati posebna poslovna pravila koja određuju trebaju li polja biti vidljiva. Umjesto pisanja pojedinačnog sigurnosnog koda na svakom zaslonu, može se stvoriti rekurzivna funkcija za čitanje svih zaslona prije prikazivanja podataka korisniku i primjene potrebnih ograničenja vidljivosti.

Grafički dizajn je još jedno područje koje se dobro uklapa u rekurzivni problem. Zamislite program koji je dizajniran za stvaranje kvadrata unutar kvadrata. Manji kvadrat bi imao iste funkcionalne zahtjeve kao i veći kvadrat s jedinom promjenom dimenzija dvaju kvadrata.

Algoritam razvrstavanja je logičan problem u kojem se popis stavki mora sortirati određenim redoslijedom. Ova vrsta rješavanja problema zahtijeva stalno miješanje popisa u novi popis, sve dok se konačni popis ne rasporedi po želji. Dobar pristup rješavanju ovog problema je stvaranje rekurzivne petlje koja nastavlja miješanje popisa dok se ne razvrsta u konačni popis.
Snaga softverske automatizacije čini korištenje rekurzije trivijalnom za većinu vlasnika sustava. Obično se očekuje da sigurnosne značajke i sortiranje stupaca zahtijevaju jednostavan klik miša ili pritisak tipkovnice. Pod pokrovom ove jednostavne radnje krije se složenost i elegancija rekurzije u praksi.