Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Používa pre rekurzívne funkcie

Rekurzia môže byť užitočnou technikou pre programátorov . Rekurzívne funkcie , niekedy známe ako " metódy " v jazykoch ako je Java , sú funkcie , ktoré sa volajú . Existujú určité situácie , v ktorých rekurzívne funkcie sú obzvlášť vhodné . Avšak , to môže byť ťažké správne vykonávať rekurzívne funkciu , a preto by mali byť použité iba v prípade potreby. Rekurzívne funkcie sú často užitočné pri práci s dátovými štruktúrami a matematických aktivít . Triedenie

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 )

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené