Vidéo: Algocratie : L'inégalité programmée - #DATAGUEULE 84 2024
Imaginez que vous essayez de trouver un élément dans une liste sans le trier en premier. Chaque recherche devient une recherche séquentielle qui prend du temps. Mais, un cas peut être fait pour ne pas trier les données pour les algorithmes. Après tout, les données sont toujours accessibles, même si vous ne les triez pas - et le tri prend du temps.
Bien sûr, le problème avec les données non triées est le même que celui de ce tiroir à ordures dans votre cuisine (ou partout où vous avez votre tiroir à ordures - en supposant que vous puissiez le trouver du tout). Chercher quoi que ce soit dans le tiroir à ordures prend du temps, car vous ne pouvez même pas deviner où trouver quelque chose. Plutôt que de simplement atteindre et prendre ce que vous voulez, vous devez sortir une myriade d'autres articles que vous ne voulez pas dans le but de trouver le produit dont vous avez besoin. Malheureusement, l'article dont vous avez besoin n'est peut-être pas dans le tiroir à ordures, vous l'avez peut-être jeté ou mis dans un tiroir différent.
Le tiroir à ordures de votre maison est comme les données non triées sur votre système. Lorsque les données ne sont pas triées, vous devez rechercher un élément à la fois et vous ne savez même pas si vous trouverez ce dont vous avez besoin sans d'abord rechercher tous les éléments de l'ensemble de données. C'est une façon frustrante de travailler avec des données.
Bien sûr, il ne suffit pas de trier les données. Si vous avez une base de données d'employés triée par nom de famille, mais que vous devez rechercher un employé par date de naissance, le tri n'est pas utile. (Supposons que vous souhaitiez trouver tous les employés qui ont un anniversaire un certain jour.) Pour trouver la date de naissance dont vous avez besoin, vous devez toujours effectuer une recherche dans l'ensemble du jeu de données un élément à la fois. Par conséquent, le tri doit se concentrer sur un besoin particulier. Oui, vous aviez besoin de la base de données des employés triée par département à un moment donné et par nom de famille à un autre moment, mais maintenant vous avez besoin de trier par date de naissance afin d'utiliser efficacement l'ensemble de données.
La nécessité de gérer plusieurs commandes triées pour les mêmes données est la raison pour laquelle les développeurs ont créé des index. Le tri d'un petit index est plus rapide que le tri de l'ensemble de données entier. L'index conserve un ordre de données spécifique et pointe vers l'ensemble de données complet afin que vous puissiez trouver ce dont vous avez besoin extrêmement rapidement. En maintenant un index pour chaque exigence de tri, vous pouvez réduire efficacement le temps d'accès aux données et permettre à plusieurs personnes d'accéder aux données en même temps dans l'ordre dans lequel elles ont besoin d'y accéder.
De nombreux moyens sont disponibles pour catégoriser les algorithmes de tri. Une de ces façons est la vitesse de la sorte. Lorsqu'on considère l'efficacité d'un algorithme de tri particulier pour l'organisation des données, les repères temporels prennent généralement en compte deux facteurs:
- Comparaisons: Pour déplacer des données d'un emplacement à un autre, vous devez savoir où le déplacer, ce qui signifie comparer les données cibles à d'autres données de l'ensemble de données.Avoir moins de comparaisons signifie une meilleure performance.
- Échanges: Selon la façon dont vous écrivez un algorithme, il se peut que les données ne parviennent pas à leur emplacement final dans l'ensemble de données au premier essai. Les données peuvent réellement se déplacer plusieurs fois. Le nombre d'échanges affecte considérablement la vitesse car vous déplacez des données d'un emplacement à un autre en mémoire. Des échanges de plus en plus petits (comme lors de l'utilisation d'index) signifient de meilleures performances.