Verwendungsmöglichkeiten für eine rekursive Funktion

June 18

Rekursion kann eine nützliche Technik für Programmierer sein. Rekursive Funktionen, manchmal bekannt als "Methoden" in Sprachen wie Java, sind Funktionen, die sich selbst aufrufen. Es gibt bestimmte Situationen, in denen, die rekursive Funktionen besonders geeignet sind. Allerdings kann es schwierig sein, eine rekursive Funktion richtig zu implementieren, damit sie gegebenenfalls nur verwendet werden sollte. Rekursive Funktionen sind oftmals hilfreich beim Umgang mit Datenstrukturen und mathematische Aktivitäten.

Sortieren

Wenn Programme Daten, entweder intern Model oder aus einer Datenquelle wie einer Datenbank importiert, müssen sie häufig es sortieren. Einige Datenstrukturen sind nicht sortiert, was bedeutet, dass die Elemente nicht in geordneter Reihenfolge angeordnet sind. Ein Programm könnte beispielsweise ein Array mit Zeichenfolgen darin enthalten. Um das Array sortieren, so dass die Textzeichenfolgen in aufsteigender Reihenfolge alphabetisch angeordnet sind, müssen das Programm einen Algorithmus verwenden. Merge-Sort ist ein Beispiel für eine rekursive Methode für diesen Prozess. Art-Werke durch das Array aufteilen ständig zwei, jede Hälfte vor dem Zusammenführen sie zurück in eine Sortierung zusammengeführt werden.

Suche

Wenn Programme Datenstrukturen speichern, müssen sie häufig Auffinden bestimmter Elemente suchen Algorithmen, die Rekursion in Anspruch nehmen können. Beispielsweise wenn ein Array Werte in alphabetischer Reihenfolge gespeichert wird, kann das Programm verwenden Rekursion, herauszufinden, welche Position ist ein gewisses Element an. Binäre Suche umfasst das Programm ein Element des Arrays zur Halbzeit kontinuierlich zu überprüfen. Wenn das Element mit dem übereinstimmt, was das Programm sucht, kann ihn zu stoppen. Wenn es nicht dem betreffenden Element ist, kann der Algorithmus überprüfen, ob es größer oder kleiner als das Element des Suchfelds ist. Wenn es größer ist, kann der Algorithmus die obere Hälfte der Struktur hinter dem aktuellen Element beseitigen, wie das 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 iterative Funktion, die nicht rekursiv ist die Aufgabe als auch ein rekursiver einer lösen könnte. Beispielsweise benötigen ein Programm in bestimmte Datenstrukturen zu durchsuchen auf lineare Weise, bis es findet einen Suchbegriff ein. In diesem Fall gibt es keine alternative, als die Struktur durchlaufen. Rekursive Algorithmen vereinfachen die Aufgabe mit jeder Iteration, überprüfen, um festzustellen, ob der Endpunkt angekommen ist, dann die Funktion erneut aufrufen, wenn es nicht der Fall ist. Die Ähnlichkeiten zwischen Rekursion und Iteration, die folgende Beispiel-Java-Methode zeigen eine rekursive Methode Umrahmung:public void ProcessNumber (Int MyNum) {}if(MyNum>100) zurück;sonst processNumber(myNum*5);}

Eine alternative iterative Implementierung dieser würde wie folgt aussehen:aNum Int = 3;while(aNum<100) {aNum * = 5;}

In diesem Fall ist die iterative Version einfacher.

Mathematische Aufgaben

Einige mathematische Verarbeitungsaufgaben eignen sich besonders gut zum rekursiven Funktionen. Fibonacci-Sequenzen zeigen die rekursive Verarbeitung. Jede Zahl in einer Fibonacci-Sequenz ist die Summe der beiden vorangegangenen. Im folgende Java-Beispielcode veranschaulicht eine Funktion um eine Fibonacci-Zahl zu finden:public void GetFibonacci (Int fNum) {}Wenn (fNum < = 1) zurückgeben fNum;sonst Rückkehr getFibonacci(fNum-1) + getFibonacci(fNum-2);

}

Die Methode liefert die Anzahl der Fibonacci-Folge an der Position, die durch einen ganzzahligen Parameter angegeben werden, wenn der Code, wie folgt aufruft:getFibonacci(8);

Dies würde die achte Zahl zurück. (Siehe Referenzen 3, 4, 5)