Unterschied zwischen randomisiertem und rekursivem Algorithmus

Unterschied zwischen randomisiertem und rekursivem Algorithmus
Unterschied zwischen randomisiertem und rekursivem Algorithmus

Video: Unterschied zwischen randomisiertem und rekursivem Algorithmus

Video: Unterschied zwischen randomisiertem und rekursivem Algorithmus
Video: Kardinalitäten und Primärschlüssel | ERM bei Datenbanken 2024, November
Anonim

Randomisierter vs. rekursiver Algorithmus

Randomisierte Algorithmen integrieren ein Gefühl der Zufälligkeit in ihre Logik, indem sie während der Ausführung des Algorithmus zufällige Entscheidungen treffen. Aufgrund dieser Zufälligkeit kann sich das Verh alten des Algorithmus auch bei fester 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 wird häufig verwendet, um Lösungen für Probleme in der Informatik zu finden, und viele höhere Programmiersprachen unterstützen Rekursion.

Was ist ein randomisierter Algorithmus?

Randomisierte Algorithmen beinh alten ein Gefühl der Zufälligkeit, indem sie zufällige Entscheidungen treffen, die die Ausführung des Algorithmus leiten. Dies erfolgt typischerweise, indem ein Satz von Zufallszahlen, die von einem Pseudozufallszahlengenerator erzeugt werden, als zusätzliche Eingabe genommen wird. Aus diesem Grund kann sich das Verh alten des Algorithmus selbst bei einer festen 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 ein randomisiertes inkrementelles Konstruktionsverfahren zum Erstellen von Strukturen wie konvexen Hüllen in der Berechnungsgeometrie verwendet. Bei diesem Verfahren werden die Eingabepunkte zufällig permutiert und dann einzeln in die Struktur eingefügt. Das Implementieren eines randomisierten Algorithmus ist relativ einfach als das Implementieren eines deterministischen Algorithmus für dasselbe Problem. Die größte Herausforderung beim Entwerfen eines randomisierten Algorithmus liegt in der Durchführung einer asymptotischen Analyse für Zeit- und Raumkomplexität.

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 wird eine Funktion in Bezug auf die frühere Version ihrer selbst definiert. Es ist wichtig zu beachten, dass diese Selbstreferenzierung eine Beendigungsbedingung haben sollte, um zu vermeiden, dass sie sich für immer selbst referenziert. Die Abbruchbedingung wird geprüft, bevor sie sich selbst referenziert. Der Anfangsschritt eines rekursiven Algorithmus bezieht sich auf die Basisklausel der rekursiven Definition des Problems. Die Schritte, die dem Anfangsschritt folgen, beziehen sich auf die Induktionssätze des Problems. Rekursive Algorithmen bieten in vielen Situationen eine einfachere Lösung und sind der natürlichen Denkweise näher als der iterative Algorithmus für dasselbe Problem. Aber im Allgemeinen benötigen rekursive Algorithmen mehr Speicher und sind rechenintensiv.

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

Zufallsalgorithmen sind Algorithmen, die ein Gefühl der Zufälligkeit nutzen, indem sie 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 für ein Problem durch Finden gefunden werden kann Lösungen für kleinere Teilprobleme desselben Problems. Aufgrund der Zufälligkeit in den Zufallsalgorithmen könnte sich das Verh alten des Algorithmus sogar für die gleiche Eingabe (in unterschiedlichen Ausführungen des Algorithmus) ändern. Aber das ist bei rekursiven Algorithmen nicht möglich und das Verh alten eines rekursiven Algorithmus wäre dasselbe für eine feste Eingabe.

Empfohlen: