Ich wurde gebeten, die gegnerischen Argumente zu finden, die notwendig sind, um die unteren Grenzen für die Auswahl und die Einfügungssortierung zu finden. Ich konnte nirgendwo einen Hinweis darauf finden.
Ich habe einige Zweifel. Ich verstehe, dass gegnerische Argumente normalerweise verwendet werden, um Untergrenzen für bestimmte "Probleme" und nicht für "Algorithmen" zu finden.
Ich verstehe das Zusammenführungsproblem. Aber wie könnte ich eine zur Auswahl und Einfügungssortierung schreiben?
Antworten:
Lassen Sie uns nun über ein gegnerisches Argument für die Einfügesortierung nachdenken (Sie können versuchen, eines für die Auswahlsortierung abzuleiten, indem Sie dieselben Ideen anwenden).
Betrachten Sie den Insertion Sort-Algorithmus, der gegen einen Gegner spielt, den wir den Gegner nennen werden. Das Ziel des Gegners ist es, eine Eingabe X für den Algorithmus bereitzustellen, die die Anzahl der vom Algorithmus durchgeführten Vergleiche maximiert. Dies wird normalerweise im Zusammenhang mit Entscheidungsbäumen analysiert . Ein Entscheidungsbaum zeigt alle möglichen Sequenzen von Vergleichen, die der Algorithmus durchführen könnte. Jeder innere Knoten eines Entscheidungsbaums repräsentiert einen einzelnen Vergleich. Die beiden Kinder eines Knotens repräsentieren die beiden Ergebnisse des Vergleichs (Ja / Nein oder Richtig / Falsch). Jedes Blatt repräsentiert eine mögliche Ausgabe. Für Sortieralgorithmen sind die Blätter Permutationender Schlüssel. Der Algorithmus beginnt an der Wurzel und folgt einem Pfad bis zu einem Blatt. An jedem internen Knoten teilt die Antwort für den durchgeführten Vergleich dem Algorithmus mit, welcher Knoten als nächstes besucht werden muss. Wenn der Algorithmus ein Blatt erreicht, gibt er seine entsprechende Permutation aus. Die Laufzeit eines Algorithmus (als Entscheidungsbaum betrachtet) für eine bestimmte Eingabe ist die Anzahl der Vergleiche, die auf dem Pfad von der Wurzel zum Ausgabeblatt durchgeführt werden. Jetzt hat der Gegner eine einfache Strategie, die gegen jeden vergleichsbasierten Sortieralgorithmus funktioniert, einschließlich der Einfügungssortierung: Wenn der Algorithmus einen Vergleich durchführt, wählt der Gegner die Antwort, die die geringstmöglichen Permutationen eliminiert.
quelle