Können wir eine sortierte Liste aus einer sortierten Matrix in


9

Ich bin verwirrt. Ich möchte beweisen, dass das Problem der Sortierung einer nach Matrix, dh der Zeilen und Spalten in aufsteigender Reihenfolge, . Ich gehe davon aus, dass dies schneller als und versuche, die Untergrenze von Für Vergleiche zu verletzen, die zum Sortieren von m Elementen erforderlich sind. Ich habe zwei widersprüchliche Antworten:n Ω ( n 2 log n ) n 2 log n log ( m ! )nnΩ(n2logn)n2lognlog(m!)

  1. Wir können eine sortierte Liste der Elemente aus der sortierten Matrix in /math/298191/lower-bound-for-matrix-sorting/298199?iemail abrufen = 1 # 298199 O ( n 2 )n2O(n2)
  2. Sie können eine sortierte Liste nicht schneller als aus der Matrix erhalten (n ^ 2 \ log (n)) Ω(n2log(n)) /programming/4279524/how-to-sort-amxn-matrix-which-has- all-its-m-Zeilen-sortiert-und-n-Spalten-sortiert

Welcher ist richtig?


6
Abgesehen davon irritiert es mich, wenn wir Behauptungen sehen, dass "Sortieren Ω(nlogn) ", aber das Eingabemodell und das Berechnungsmodell nicht spezifizieren. Die Vergleichssortierung lautet Ω(nlogn) . Das Sortieren kann im Allgemeinen schneller sein, beispielsweise für Zeichenfolgen (wenn n die gesamte Eingabelänge ist) oder Ganzzahlen (in bestimmten Berechnungsmodellen, die ganzzahlige arithmetische Operationen mit konstanter Zeit ermöglichen).
David Eppstein

3
Um noch pedantischer zu sein: Die Vergleichssortierung ist nicht , da die Vergleichssortierung keine Funktion von bis . Das Sortieren erfordert Zeit in jedem binären Entscheidungsbaummodell (nicht nur Vergleiche). R R Ω ( n log n )Ω(nlogn)RRΩ(nlogn)
Jeffs

Antworten:


15

Die Untergrenze ist richtig (2) - Sie können dies nicht besser machen als und (1) ist natürlich falsch. Definieren wir zunächst, was eine sortierte Matrix ist - es ist eine Matrix, in der die Elemente in jeder Zeile und Spalte in aufsteigender Reihenfolge sortiert sind.Ω(n2logn)

Es ist jetzt einfach zu überprüfen, ob jede Diagonale Elemente enthält, die in einer beliebigen Reihenfolge vorliegen. Sie müssen sie nur noch ausreichend groß machen. Das Sortieren der Matrix impliziert insbesondere das Sortieren jeder dieser Diagonalen. Die te Diagonale hat Einträge, und als solchemögliche Bestellung. Als solches könnte eine sortierte Matrix mindestens verschiedene Bestellungen. Es ist jetzt einfach zu überprüfen, ob , was impliziert, dass im Vergleichsmodell (und wie Jeff weiter unten in jedem binären Entscheidungsbaummodell ausführt) dies zumindest eine Untergrenze ist auf die Sortierzeit.i i ! X = n i = 1 i ! log 2 X = Ω ( n 2 log n )iii!X=i=1ni!log2X=Ω(n2logn)


3
Wiederum in jedem binären Entscheidungsbaummodell nicht nur Vergleiche.
Jeffs
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.