Unterschied zwischen randomisiertem und rekursivem Algorithmus

Anonim

Randomisierten / Rekursiven Algorithmus

Randomisierte Algorithmen enthalten ein Gefühl der Zufälligkeit in seiner Logik durch Zufallsauswahl während der Ausführung des Algorithmus. Aufgrund dieser Zufälligkeit kann sich das Verhalten des Algorithmus auch bei einer festen Eingabe ändern. Für viele Probleme bieten randomisierte Algorithmen die einfachsten und effizientesten Lösungen. Rekursive Algorithmen basieren auf der Idee, dass die Lösung eines Problems gefunden werden kann, indem Lösungen für kleinere Teilprobleme desselben Problems gefunden werden. Rekursion ist weit verbreitet, um Lösungen für Probleme in der Informatik zu finden, und viele hochrangige Programmiersprachen unterstützen die Rekursion.

Was ist ein Randomisierter Algorithmus?

Randomisierte Algorithmen enthalten ein Gefühl der Zufälligkeit, indem sie zufällige Entscheidungen treffen, die die Ausführung des Algorithmus steuern. Dies geschieht normalerweise, indem ein Satz von Zufallszahlen, die von einem Pseudozufallszahlengenerator erzeugt werden, als zusätzliche Eingabe verwendet wird. Aus diesem Grund kann sich das Verhalten des Algorithmus auch für eine feste Eingabe ändern. Quicksort ist ein weithin bekannter Algorithmus, der das Konzept der Zufälligkeit verwendet und unabhängig von den Eingabeeigenschaften eine Laufzeit von O (n log n) hat. Darüber hinaus wird eine randomisierte inkrementelle Konstruktionsmethode zum Aufbau von Strukturen wie konvexer Hülle in der Berechnungsgeometrie verwendet. Bei dieser Methode werden die Eingabepunkte zufällig permutiert und dann nacheinander in die Struktur eingefügt. Die Implementierung eines randomisierten Algorithmus ist relativ einfach, wenn ein deterministischer Algorithmus für dasselbe Problem implementiert wird. Die größte Herausforderung bei der Entwicklung eines randomisierten Algorithmus liegt in der Durchführung einer asymptotischen Analyse für die Komplexität von Zeit und Raum.

Was ist ein rekursiver Algorithmus?

Rekursive Algorithmen basieren auf der Idee, dass die Lösung eines Problems gefunden werden kann, indem Lösungen für kleinere Teilprobleme desselben Problems gefunden werden. In einem rekursiven Algorithmus ist eine Funktion definiert in der früheren Version von sich selbst. Es ist wichtig zu beachten, dass diese Selbstreferenzierung eine Kündigungsbedingung haben sollte, um eine Referenzierung für immer zu vermeiden. Die Kündigungsbedingung wird überprüft, bevor sie sich selbst referenziert. Der erste Schritt eines rekursiven Algorithmus ist mit der Basisklausel der rekursiven Definition des Problems verbunden. Die Schritte, die dem ersten Schritt folgen, beziehen sich auf die induktiven Abschnitte des Problems. Rekursive Algorithmen bieten in vielen Situationen eine einfachere Lösung und sind dem natürlichen Denken näher als der iterative Algorithmus für dasselbe Problem. Im Allgemeinen benötigen rekursive Algorithmen jedoch mehr Speicher, und sie sind rechenintensiv.

Was ist der Unterschied zwischen einem randomisierten und einem rekursiven Algorithmus?

Zufällige Algorithmen sind Algorithmen, die zufällige Entscheidungen treffen, die die Ausführung des Algorithmus beeinflussen könnten, während rekursive Algorithmen Algorithmen sind, die auf der Idee basieren, dass eine Lösung eines Problems gefunden werden kann, kleinere Unterprobleme des gleichen Problems. Aufgrund der Zufälligkeit in den Zufallsalgorithmen könnte sich das Verhalten des Algorithmus sogar für die gleiche Eingabe ändern (in verschiedenen Ausführungen des Algorithmus). Dies ist jedoch bei rekursiven Algorithmen nicht möglich und das Verhalten eines rekursiven Algorithmus wäre für eine feste Eingabe gleich.