Peut-on obtenir une liste triée à partir d'une matrice triée en


9

Je suis confus. Je veux prouver que le problème du tri d'une matrice n par n c'est-à-dire que les lignes et les colonnes sont en ordre croissant est Ω(n2logn) . Je continue en supposant que cela peut être fait plus rapidement que n2logn et j'essaie de violer la borne inférieure log(m!) Pour les comparaisons nécessaires pour trier m éléments. J'ai deux réponses contradictoires:

  1. nous pouvons obtenir une liste triée des n2 éléments de la matrice triée dans O(n2) /math/298191/lower-bound-for-matrix-sorting/298199?iemail=1 # 298199
  2. vous ne pouvez pas obtenir une liste triée de la matrice plus rapidement que /programming/4279524/how-to-sort-amxn-matrix-which-has- tout-ses-m-lignes-triées-et-n-colonnes-triéesΩ(n2log(n))

Laquelle a raison?


6
En passant, cela m'énerve quand on voit des affirmations selon lesquelles "le tri est " mais qui ne précisent pas le modèle d'entrée et le modèle de calcul. Le tri de comparaison est . Le tri, en général, peut être plus rapide que cela, par exemple pour les chaînes (si est la longueur d'entrée totale) ou les entiers (dans certains modèles de calcul qui permettent des opérations arithmétiques entières à temps constant). Ω ( n log n ) nΩ(nlogn)Ω(nlogn)n
David Eppstein

3
Pour être encore plus pédant: le tri par comparaison n'est pas , car le tri par comparaison n'est pas une fonction de à . Le tri nécessite du temps dans tout modèle d'arbre de décision binaire (pas seulement des comparaisons). R R Ω ( n log n )Ω(nlogn)RRΩ(nlogn)
Jeffε

Réponses:


15

La borne inférieure est correcte (2) - vous ne pouvez pas faire mieux que et (1) est bien sûr faux. Permet de définir d'abord ce qu'est une matrice triée - c'est une matrice où les éléments de chaque ligne et colonne sont triés dans l'ordre croissant.Ω(n2logn)

Il est maintenant facile de vérifier que chaque diagonale peut contenir des éléments qui sont dans n'importe quel ordre arbitraire - il suffit de les rendre suffisamment grands. En particulier, le tri de la matrice implique de trier chacune de ces diagonales. La ème diagonale a entrées, et en tant que tellecommande possible. Ainsi, une matrice triée pourrait définir au moins différentes commandes. Il est maintenant facile de vérifier que , ce qui implique que dans le modèle de comparaison (et comme Jeff le souligne ci-dessous, dans tout modèle d'arbre de décision binaire) au moins c'est une borne inférieure sur le temps de tri.i i ! X = n i = 1 i ! log 2 X = Ω ( n 2 log n )iii!X=i=1ni!log2X=Ω(n2logn)


3
Encore une fois, dans tout modèle d'arbre de décision binaire, pas seulement des comparaisons.
Jeffε
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.