Recursion kann eine nützliche Technik für Programmierer sein . Rekursive Funktionen , manchmal auch als "Methoden" in Sprachen wie Java bekannt ist, sind Funktionen, die sich selbst nennen . Es gibt bestimmte Fälle, in denen rekursive Funktionen sind besonders geeignet. Allerdings kann es schwierig sein, korrekt umzusetzen eine rekursive Funktion , so sollten sie nur verwendet werden, gegebenenfalls werden. Rekursive Funktionen sind oft nützlich beim Umgang mit Datenstrukturen und mathematische Aktivitäten. Sortierung
Wenn Programme Modelldaten , entweder intern oder aus einer Quelle wie einer Datenbank , die sie benötigen, oft zu sortieren . Einige Datenstrukturen werden nicht bestellt , was bedeutet, dass die Elemente nicht in fortlaufender Reihenfolge angeordnet. Zum Beispiel könnte ein Programm enthält ein Array mit Zeichenfolgen darin. Um das Array so , dass die Text-Strings in aufsteigender Reihenfolge alphabetisch angeordnet sind zu sortieren, kann das Programm brauchen, um einen Algorithmus zu verwenden. Merge sort ist ein Beispiel für eine rekursive Methode für diesen Prozess. Merge sort arbeitet durch die ständige Teilung des Array in zwei -, Sortier jede Hälfte vor der Verschmelzung sie wieder in einem.
Suchen
Wenn Programme Daten speichern in Datenstrukturen , sie oft müssen bestimmte Elemente mit Suchalgorithmen , die von Rekursion profitieren suchen. Zum Beispiel, wenn ein Array Speichern von Werten in alphabetischer Reihenfolge , kann das Programm verwenden Rekursion , um herauszufinden, welche Position ein bestimmtes Element an ist . Binäre Suche beinhaltet das Programm kontinuierlich überprüft ein Element auf halbem Weg durch das Feld . Wenn das Element übereinstimmt, die das Programm sucht , kann es zu stoppen. Wenn es nicht das Element in Frage , kann der Algorithmus , ob es größer oder kleiner als die Suche Element ist . Wenn er größer ist , kann der Algorithmus die Beseitigung der oberen Hälfte der Struktur über das aktuelle Element , wie die Suche Element in der unteren Hälfte sein muss . Dieser Prozess wird fortgesetzt, bis das Element befindet.
Datenstrukturen
Bei der Entscheidung über Algorithmen , sollten Programmierer fragen, ob eine Funktion, die nicht rekursiv ist lösen könnte iterativen Aufgabe sowie eine rekursive . Zum Beispiel , in bestimmten Datenstrukturen wird ein Programm suchen müssen durch in einer linearen Weise , bis er findet einen Suchbegriff ein. In diesem Fall gibt es keine andere Möglichkeit, als durch die Struktur zu durchlaufen. Rekursive Algorithmen vereinfachen die Aufgabe mit jeder Iteration zu überprüfen, ob der Endpunkt angekommen ist, dann rufen Sie die Funktion wieder, wenn es nicht hat. Um die Ähnlichkeiten zwischen Rekursion und Iteration zu demonstrieren, zeigt das folgende Beispiel-Java- Methode eine rekursive Methode Umriss : public void Prozessnummer (int myNum ) {if ( myNum > 100) return; sonst Prozessnummer ( myNum * 5) ;}
< p > Eine alternative iterative Umsetzung würde dies wie folgt aussehen: . int aNum = 3; while ( aNum <100) { aNum * = 5; }
In diesem Fall wird die iterative Version ist einfacher
< br >
mathematische Aufgaben
Einige mathematische Verarbeitung Aufgaben eignen sich besonders gut , um rekursive Funktionen geeignet. Fibonacci -Sequenzen zeigen rekursive Verarbeitung . Jede Zahl in einer Fibonacci-Folge ist die Summe der beiden vorangegangenen . Das folgende Beispiel Java-Code zeigt eine Funktion, um eine Fibonacci-Zahl zu finden : public int getFibonacci (int FNUM ) {if ( FNUM <= 1 ) return FNUM , sonst Rückkehr getFibonacci ( FNUM -1) + getFibonacci ( FNUM -2); }
die Methode gibt die Zahl in der Fibonacci-Sequenz an der Position durch einen Integer-Parameter angegeben , wenn der Code nennt es , wie folgt: getFibonacci (8);
Dies würde die achte Zahl zurück. (Siehe Referenzen 3, 4 , 5)