L'algorithme de tri gogol (bogosort), utilise la méthode de Monte-Carlo. Cela revient à vouloir trier des éléments en les jetant en l'air jusqu'à qu'ils retombent de façon ordonnée... Particulièrement inefficace, la complexité de cette méthode de tirage aléatoire croît factoriellement, c'est-à-dire plus rapidement qu'une fonction exponentielle : à raison d'un essai par milliseconde, le tri de 20 éléments nécessiterait un temps de calcul de l'ordre de l'âge de l'univers ; pour 69 valeurs, le nombre moyen d'essais nécessaires est d'environ un gogol ! De plus, l'algorithme n'est pas stable et la génération de nombres n'étant souvent que pseudo-aléatoire, le tri peut n'être jamais réalisé... Cet algorithme est donc particulièrement instructif et permet de montrer aux étudiants combien la façon de programmer importe plus que les moyens techniques : à titre de comparaison, le tri rapide (quicksort) de 69 éléments nécessite en moyenne moins de 300 permutations. Voici les performances attendues pour les tris de moins de 11 éléments : |
Nombre d'éléments | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Nombre d'opérations | 4 | 18 | 96 | 600 | 4 300 | 35 000 | 320 000 | 3 200 000 | 36 000 000 |
Vérifiez par vous-même la totale inefficacité de cet algorithme grâce à ce script. Attention : le tri de plus de quatre éléments peut être très looooooong... |
Vous pouvez télécharger une page web prête à utiliser, compressée ou, si vous n'avez pas de logiciel de compression, le fichier auto-extractible. Vous pouvez également copier le code source du document HTML incluant le script en le sélectionnant dans le cadre suivant : |
[ Retour ]