Untergrenze für das Finden des k-ten kleinsten Elements mithilfe von gegnerischen Argumenten


10

In vielen Texten wird eine Untergrenze zum Finden des ten kleinsten Elements unter Verwendung von Argumenten unter Verwendung von Medianen abgeleitet. Wie kann ich einen mit einem gegnerischen Argument finden?k

Wikipedia sagt, dass der Turnieralgorithmus in läuft und n - k + ∑ n j = n + 2 - k ⌈ lgO(n+klog⁡n) istgegebenals untere Grenze.n−k+∑j=n+2−kn⌈lgj⌉

Antworten:


8

Ich werde kurz eine Skizze eines gegnerischen Arguments skizzieren.

Stellen Sie sich Ihren Auswahlalgorithmus vor, der gegen einen Gegner spielt, den wir als Gegner bezeichnen. Das Ziel des Gegners besteht darin, eine Eingabe X für Ihren Algorithmus bereitzustellen , die die Anzahl der von Ihrem Algorithmus durchgeführten Vergleichsoperationen maximiert. In der Tat kann Ihr Algorithmus als Vergleichsbaum angesehen werden, in dem ein Pfad einer Teilreihenfolge entspricht. Wenn der Algorithmus den Gegner nach einem Paar (x,y) von Elementen fragt , gibt der Gegner entweder x<y oder y<x . Die Antworten des Gegners können niemals früheren Ergebnissen widersprechen.

Angenommen, das k te größte Element ist x∗ : Unter Berücksichtigung der Teilreihenfolge, die einem Blatt des Vergleichsbaums zugeordnet ist, muss x∗ mit jedem anderen Element vergleichbar sein, damit der Algorithmus korrekt ist, so dass der Algorithmus haben muss machte mindestens einen Vergleich (y,z) ∀y≠x∗ dessen Ergebnis entweder y<z≤x∗ oder x∗≤z<y . Nennen Sie einen solchen Vergleich entscheidend für ein Element y. Offensichtlich möchte der Gegner die Anzahl der nicht entscheidenden Vergleiche maximieren, die von Ihrem Algorithmus durchgeführt werden.

Sei L die Menge der k−1 größten Elemente; Ihr Algorithmus muss alle Elemente in L und auch das größte Element in X∖L , dh x∗ , korrekt identifizieren . Beachten Sie, dass jedes Element in X∖L mindestens einen entscheidenden Vergleich verloren hat. Jetzt hat der Gegner eine Strategie, die jedes der k−1 Elemente in Lzwingt, mindestens ⌈lg⁡nk−1⌉Vergleiche, von denen keiner fürX∖L. Addiert man die verbleibendenn−kentscheidenden Vergleiche fürX∖Lso erhält man die Untergrenze. Für Details lesen Sie bitte die folgenden ausgezeichnetenNotizen vonJeff Erikson.


crucial comparison for $y$y::zy<z≤x∗x∗≤z<yx∗zx∗
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.