Possiamo ottenere un elenco ordinato da una matrice ordinata in


9

Non ho capito bene. Voglio dimostrare che il problema di ordinare una matrice per , cioè le righe e le colonne sono in ordine crescente è . Procedo supponendo che possa essere fatto più velocemente di e provo a violare il limite inferiore \ log (m!) Per i confronti necessari per ordinare m elementi. Ho due risposte contrastanti:n Ω ( n 2 log n ) n 2 log n log ( m ! )nnΩ(n2logn)n2lognlog(m!)

  1. possiamo ottenere un elenco ordinato degli elementi dalla matrice ordinata in /math/298191/lower-bound-for-matrix-sorting/298199?iemail = 1 # 298199 O ( n 2 )n2O(n2)
  2. non è possibile ottenere un elenco ordinato dalla matrice più velocemente di Ω(n2log(n)) /programming/4279524/how-to-sort-amxn-matrix-which-has- tutti-i suoi-m-righe-scelti-e-n-colonne-scelti

Qual è giusto?


6
Per inciso, mi irrita quando vediamo affermazioni che "l'ordinamento è Ω(nlogn) " ma che non specifica il modello di input e il modello di calcolo. L'ordinamento di confronto è Ω(nlogn) . L'ordinamento, in generale, può essere più veloce di quello, ad esempio per le stringhe (se n è la lunghezza totale dell'input) o per i numeri interi (in alcuni modelli di calcolo che consentono operazioni aritmetiche di numeri interi a tempo costante).
David Eppstein,

3
Per essere ancora più pedanti: l'ordinamento di confronto non è , perché l'ordinamento di confronto non è una funzione da a . L'ordinamento richiede tempo in qualsiasi modello di albero decisionale binario (non solo confronti). R R Ω ( n registro n )Ω(nlogn)RRΩ(nlogn)
Jeffε

Risposte:


15

Il limite inferiore è corretto (2) - non puoi farlo meglio di e (1) è ovviamente sbagliato. Consente di definire innanzitutto cosa sia una matrice ordinata: è una matrice in cui gli elementi di ciascuna riga e colonna sono ordinati in ordine crescente.Ω(n2logn)

Ora è facile verificare che ogni diagonale possa contenere elementi che sono in qualsiasi ordine arbitrario - devi solo renderli sufficientemente grandi. In particolare, l'ordinamento della matrice implica l'ordinamento di ognuna di queste diagonali. L' esimo diagonale ha le voci, e come talepossibile ordinazione. Come tale, una matrice ordinata potrebbe definire almeno diversi ordini. Ora è facile verificare che , sottintendendo che nel modello di confronto (e come sottolinea Jeff sotto, in qualsiasi modello di albero di decisione binario) almeno questo è un limite inferiore sul tempo di smistamento.io io ! X = n i = 1 i ! log 2 X = Ω ( n 2 log n )iii!X=i=1ni!log2X=Ω(n2logn)


3
Ancora una volta, in qualsiasi modello di albero decisionale binario, non solo confronti.
Jeffε
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.