Angenommen, wir wollen eine Liste von reellen Zahlen sortieren . Angenommen, wir erhalten eine Blackbox, mit der reelle Zahlen sofort sortiert werden können . Wie viel Vorteil können wir mit dieser Black Box gewinnen?n √
Können wir zum Beispiel die Nummern mit nur Aufrufen an die Blackbox sortieren ? Der beste Algorithmus, den ich gefunden habe, verwendet Aufrufe an die Blackbox. Aber ich habe es nicht weiter verbessern können. Hier ist mein Algorithmus, der ähnlich wie Merge-Sort ist:n
Teilen Sie zuerst die Liste in Listen mit ungefähr Größe auf. Verwenden Sie dann Aufrufe an die Blackbox, um diese Listen zu sortieren. Zum Schluss führen Sie die sortierten Listen mit der Blackbox wie folgt zusammen:√ s1,s2,. . . ,s √ √ √
Fügen Sie die kleinsten Elemente der Listen in eine neue Liste und rufen Sie die Blackbox auf, um sie zu sortieren. Die Zahl in (ersten und kleinstes Element ) wird die kleinste Zahl in seinem . Wir können es an die erste Stelle der Ausgabeliste setzen.
Angenommen, das Element wurde aus , ersetzen wir durch das zweitkleinste Element der Sortierliste und führen erneut die Blackbox darauf aus, um das zweitkleinste Element von zu berechnen .
Wir fahren fort, bis alle Elemente sortiert sind. Die Gesamtzahl der Blackbox-Anrufe für diesen Teil beträgtL [ 1 ] L S s j L [ 1 ] s j S n - √
n. Daher beträgt die Gesamtzahl der Anrufe insgesamt .
Auf der anderen Seite sollten wir in der Lage sein, eine Untergrenze zu erhalten, indem wir die Untergrenze für die für die Sortierung erforderlichen Zahlenvergleiche wie folgt verwenden: Wir können die Blackbox mit implementieren. Vergleiche. Wenn wir das Problem mit Aufrufen an die Blackbox lösen und in linearer Zeit zusammenführen können, können wir reelle Zahlen mit Vergleichen sortieren, was unmöglich ist.o( √no(nlgn)
Ich denke, wir könnten beweisen, dass eine Untergrenze für die Anzahl der Aufrufe der Blackbox ist, da viele Vergleiche, die in der Blackbox verwendet werden, geteilt würden und daher in unserem Argument wiedergegeben werden.
UPDATE: Wie die anderen Posts andeuten, ist auch ein erreichbar.