Articles

Quest-ce que le tri?


Meilleure réponse

En informatique, a algorithme de tri est un algorithme qui place les éléments dune liste dans un certain ordre. Les ordres les plus fréquemment utilisés sont lordre numérique et lordre lexicographique. Un tri efficace est important pour optimiser lefficacité dautres algorithmes (tels que les algorithmes de recherche et de fusion) qui nécessitent que les données dentrée soient dans des listes triées. Le tri est également souvent utile pour la canonisation des données et pour produire une sortie lisible par lhomme. Plus formellement, la sortie de tout algorithme de tri doit remplir deux conditions:

  • La sortie est dans un ordre non décroissant (chaque élément nest pas plus petit que lélément précédent selon lordre total souhaité);
  • La sortie est une permutation (une réorganisation, tout en conservant tous les éléments dorigine) de lentrée.

De plus, les données dentrée sont souvent stockées dans un tableau, qui permet un accès aléatoire, plutôt quune liste, qui nautorise quun accès séquentiel; bien que de nombreux algorithmes puissent être appliqués à lun ou lautre type de données après une modification appropriée.

Les algorithmes de tri sont souvent appelés un mot suivi du mot «sort», et sont grammaticalement utilisés en anglais comme expressions nominales, pour exemple dans la phrase, « il est inefficace dutiliser le tri par insertion sur de grandes listes », le tri par insertion de phrase fait référence à lalgorithme de tri par insertion.

Réponse

Le tri dun milliard dobjets est définitivement à portée de main si vous pouvez les garder en mémoire. Vous avez besoin comme O (n log n) comparé, non? Si vous ne pouvez pas trier ce qui tient dans la mémoire de votre ordinateur (ou des ordinateurs si vous avez un système distribué), et fusionner les résultats. À un moment donné dans les années 1990, un tri de fusion modifié avait le record du monde de vitesse, et un super linéaire par vitesse du processeur.

Une autre chose que vous faites cependant est que lorsque N devient grand (ou en fait chaque fois que quelque chose devient lent pour des entrées raisonnables), vous regardez de plus près ce dont vous avez vraiment besoin.

Pourquoi avez-vous besoin de trier les objets? Si vous recherchez simplement des doublons, il existe des moyens beaucoup plus rapides! Si vous souhaitez traiter les 5\% inférieurs (ou supérieurs), il existe des algorithmes O (n) qui peuvent partitionner en fonction de la publication position de tri!

Quand les choses deviennent lentes, vous regardez ce qui est en train de faire, et avant de déterminer si cest lalgorithme le plus rapide, faites quoi que ce soit, vous déterminez si cest réellement la bonne chose à faire du tout! (Exception: si le «peu importe» le plus rapide est un thin déjà débogué, vous pouvez simplement le gifler, alors il vaudrait peut-être mieux le faire … comme si vous trouvez que vous êtes e tester si un tableau contient un élément plusieurs fois, il peut être plus simple de remplacer le tableau par un ensemble et voir sil est maintenant assez rapide pour que vous ne vous souciez pas que si vous faisiez encore six heures de recherche, vous pourriez éliminer la moitié de les chèques, ou autre).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *