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 ! )
- 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 )
- Sie können eine sortierte Liste nicht schneller als aus der Matrix erhalten (n ^ 2 \ log (n)) /programming/4279524/how-to-sort-amxn-matrix-which-has- all-its-m-Zeilen-sortiert-und-n-Spalten-sortiert
Welcher ist richtig?
time-complexity
lower-bounds
matrices
sorting
asymptotics
user2038833
quelle
quelle
Antworten:
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 )i i i! X=∏ni=1i! log2X=Ω(n2logn)
quelle