Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
programy dátový model , a to buď interne , alebo dovezené zo zdroja , ako je napríklad databáza , často je potrebné ju vyriešiť . Niektoré dátové štruktúry nie sú nariadil , čo znamená , že prvky nie sú usporiadané v poradí , . Napríklad , mohli Program obsahuje pole s textovými reťazcami vnútri nej . Ak chcete zoradiť pole tak , aby sa textové reťazce sú usporiadané vo vzostupnom poradí podľa abecedy , môže byť potrebné program použiť algoritmus . Merge sort je príklad rekurzívne metódy pre tento proces . Merge sort funguje tak , že neustále rozdelenie poľa na dve časti , triedenie každú polovicu ešte pred zlúčením späť do jedného .
Vyhľadávanie
programy ukladajú dáta do dátových štruktúr , často je potrebné nájsť konkrétne prvky , pomocou vyhľadávacie algoritmy , ktoré môžu ťažiť z rekurzia . Napríklad , ak pole je ukladanie hodnôt v abecednom poradí , program môže používať rekurziu prísť na to , aký postoj určitý element je . Binárne hľadanie zahŕňa program neustále kontrolu prvok v polovici poľa . Ak element zodpovedá jeden program hľadá , môže to zastaviť . Pokiaľ nie je prvok , algoritmus môže skontrolovať , či je väčší alebo menší , ako je vyhľadávanie prvok . Čo je väčšie , algoritmus môže odstrániť hornú polovicu konštrukcie nad aktuálny prvok , ako je vyhľadávanie prvok musí byť v dolnej polovici . Tento proces pokračuje , kým je prvok umiestnený .
Dátové štruktúry
Pri rozhodovaní o algoritmoch , mali programátori spýtať , či iteratívny funkcie, ktorá nie je rekurzívne by mohla vyriešiť úlohu , rovnako ako rekurzívne jeden . Napríklad , v niektorých dátových štruktúr , program bude musieť prehľadávať v lineárnym spôsobom , kým sa nájde hľadanú položku . V tomto prípade neexistuje žiadna alternatíva , ale iterovat štruktúry . Rekurzívne algoritmy zjednodušiť úlohu s každou iterácií , kontroluje , či dorazil koncový bod , potom volanie funkcie znova , ak to nemá . Na preukázanie podobnosti medzi rekurzia a iterácia , nasledujúca ukážka metódy Java ukazuje rekurzívne metódy obrys : public void processNumber ( int myNum ) { if ( myNum > 100 ) return ; inak processNumber ( myNum * 5 ) ; }
alternatívne iteratívny implementácie by to bolo takto : int anum = 3 ; while ( anum < 100 ) { anum * = 5 ; }
V tomto prípade je iteratívny verzia je jednoduchšie
< br . >
matematické úlohy
Niektoré matematické úlohy spracovania sú obzvlášť vhodné pre rekurzívnych funkcií . Fibonacci sekvencie ukazujú rekurzívne spracovanie . Každé číslo v poradí Fibonacci je súčtom dvoch predchádzajúcich . Nasledujúci ukážkový kód v jazyku Java demonštruje funkciu nájsť rad Fibonacci : public int getFibonacci ( int fNum ) { if ( fNum < = 1 ) return fNum , inak vráti getFibonacci ( fNum - 1 ) + getFibonacci ( fNum - 2 ) ; }
metóda vracia číslo vo Fibonacciho postupnosti na pozícii označenej ako celé číslo parametra , keď kód volá ho , takto : getFibonacci ( 8 ) ;
To by sa vrátil na ôsmy rad . ( Pozri Referencie 3 , 4 , 5 )