J'essaie de comprendre quelques algorithmes de tri, mais j'ai du mal à voir la différence entre l'algorithme du tri à bulles et celui du tri par insertion.
Je sais que les deux sont O(n 2 ), mais il me semble que le tri à bulles fait juste remonter la valeur maximale du tableau vers le haut à chaque passage, alors que le tri par insertion fait juste descendre la valeur la plus basse vers le bas à chaque passage. Ne font-ils pas exactement la même chose mais dans des directions différentes ?
Pour le tri par insertion, le nombre de comparaisons/échanges potentiels commence à zéro et augmente à chaque fois (c'est-à-dire 0, 1, 2, 3, 4, ..., n) mais pour le tri à bulles, le même comportement se produit, mais à la fin du tri (c'est-à-dire n, n-1, n-2, ... 0) car le tri à bulles n'a plus besoin de comparer avec les derniers éléments au fur et à mesure qu'ils sont triés.
Pour autant, il semble qu'un consensus se dégage pour dire que le tri par insertion est meilleur en général. Quelqu'un peut-il me dire pourquoi ?
Edit : Je suis principalement intéressé par les différences dans la façon dont les algorithmes fonctionnent, pas tellement par leur efficacité ou leur complexité asymptotique.