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 - klgO(n+klogn) istgegebenals untere Grenze.nk+j=n+2knlgj

user5507
quelle

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) yx dessen Ergebnis entweder y<zx oder xz<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 k1 größten Elemente; Ihr Algorithmus muss alle Elemente in L und auch das größte Element in XL , dh x , korrekt identifizieren . Beachten Sie, dass jedes Element in XL mindestens einen entscheidenden Vergleich verloren hat. Jetzt hat der Gegner eine Strategie, die jedes der k1 Elemente in Lzwingt, mindestens lgnk1Vergleiche, von denen keiner fürXL. Addiert man die verbleibendennkentscheidenden Vergleiche fürXLso erhält man die Untergrenze. Für Details lesen Sie bitte die folgenden ausgezeichnetenNotizen vonJeff Erikson.

Massimo Cafaro
quelle
crucial comparison for $y$y::zy<zxxz<yxzx