Angesichts einer unortigen Liste von $ N $ -Plits, wie viele zufällige Vergleiche im Durchschnitt benötigt werden, um die Liste sortieren zu können?

cs.stackexchange https://cs.stackexchange.com/questions/118531

Frage

Es gibt eine unortige Liste von $ N $ Elemente $ x_1, \ ldots, x_n $ . Bis Sie die Liste sortieren, erhalten Sie einen der $ {n \ wähle 2} $ Mögliche binäre Vergleiche gleichmäßig (mit Austausch) einheitlich (mit Austausch).

Wie viele dieser zufälligen Vergleiche müssen Sie im Durchschnitt die Liste sortieren?

Einige Follow-up-Fragen:

    .
  1. Wie sieht die Verteilung für die Anzahl der benötigten Vergleiche aus?
  2. Wie lautet die Antwort, wenn Sie $ K $ -Ang-Vergleiche anstelle von Binärnen verwenden.
  3. Was ist die Antwort, wenn die Vergleiche ohne Ersatz vorgenommen werden (d. H. Sie erhalten nicht zweimal den gleichen Vergleich)?
  4. Angesichts eines Satzes von Vergleiche, wie kann man überprüfen, ob die Liste sortierbar ist? Ich bin fast sicher, dass die Antwort eine DAG und eine topologische Sorte erstellt, aber ich möchte nur bestätigen.
  5. Eine exakte ISH-Antwort wäre schön, aber ein großer $ o $ Antwort ist auch in Ordnung, ich nehme an.

War es hilfreich?

Lösung

asympotisch, Sie benötigen $ \ theta (n ^ 2 \ log n) $ Vergleiche.

Angenommen, $ x _ {(1)}, \ dots, x _ {(n)} $ Bezeichnet die Elemente in sortierter Reihenfolge. Wenn Sie dann keinen Vergleich zwischen $ X _ {(1)} $ und $ x _ {(2)} sehen $ , Sie haben keinen Weg, um zu sagen, welche Reihenfolge sie erscheinen sollten. Gleiches gilt für jedes Paar benachbarter Element. Es gibt also $ N-1 $ Coupons (eins pro benachbartem Paar von Elementen), und Sie müssen sie alle sammeln. Basierend auf der Coupon Collector Problem , wir wissen, dass Sie $ \ theta (n \ \ log n) $ zufällig gewählte Gutscheine, bevor wir sie alle gesammelt haben. Jede Beobachtung hat einen $ 2 / N $ Chance, ein Gutschein zu sein, also brauchen wir insgesamt $ \ theta (n ^ 2 \ log n) $ Beobachtungen, bevor wir alle Gutscheine gesammelt haben. Wenn wir alle Gutscheine sammeln, können wir den $ x $ sortieren; Wenn wir keinen Gutschein vermissen, können wir sie nicht sortieren.

Die anschließenden Fragen kochen auf Fakten über das Coupon Collector-Problem, und Sie können die Schwanzgrenze auf Wikipedia verwenden, um die Informationen über die Verteilung zu binden.

Wenn Vergleiche ohne Ersatz ausgewählt werden, benötigen Sie $ \ theta (n ^ 2) $ Beobachtungen.

Ein vernünftiger Weg, um zu prüfen, ob die Liste sortierbar ist, ist die topologische Sortierung, um zu überprüfen, ob Sie einen Vergleich zwischen jedem Paar benachbarter Elemente in der topologisch sortierten Reihenfolge beobachtet haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top