Toutes les complexités que vous avez fournies sont vraies, mais elles sont notation Big O , donc toutes les valeurs et constantes additives sont omises.
Pour répondre à votre question, nous devons nous concentrer sur une analyse détaillée de ces deux algorithmes. Cette analyse peut être effectuée à la main ou trouvée dans de nombreux livres. J'utiliserai les résultats de Knuth's Art of Computer Programming .
Nombre moyen de comparaisons:
- Tri des bulles : 12( N2- NlnN- ( γ+ ln2 - 1 ) N) + O ( N--√)
- Tri par insertion : 14( N2- N) + N- HN
- Tri de sélection : ( N+ 1 ) HN- 2 N
Maintenant, si vous tracez ces fonctions, vous obtenez quelque chose comme ceci:
Comme vous pouvez le voir, le tri à bulles est bien pire à mesure que le nombre d'éléments augmente, même si les deux méthodes de tri ont la même complexité asymptotique.
Cette analyse est basée sur l'hypothèse que l'entrée est aléatoire - ce qui pourrait ne pas être vrai tout le temps. Cependant, avant de commencer le tri, nous pouvons permuter aléatoirement la séquence d'entrée (en utilisant n'importe quelle méthode) pour obtenir le cas moyen.
J'ai omis l'analyse de la complexité temporelle car cela dépend de la mise en œuvre, mais des méthodes similaires peuvent être utilisées.
Bartosz Przybylski
la source
La fonction elle-même, par exemple le nombre de comparaisons et / ou de swaps, peut être différente pour deux algorithmes avec le même coût asymptotique, à condition qu'ils croissent avec le même taux.
En résumé, la limite asymptotique vous donne une bonne idée de la façon dont les coûts d'un algorithme augmentent par rapport à la taille d'entrée, mais ne dit rien sur les performances relatives des différents algorithmes dans le même ensemble.
la source
Le tri à bulles utilise plus de temps d'échange, tandis que le tri par sélection évite cela.
Lors de l'utilisation de la sélection, le tri permute
n
au maximum les heures. mais lorsque vous utilisez le tri à bulles, il échange presquen*(n-1)
. Et évidemment, le temps de lecture est inférieur au temps d'écriture, même en mémoire. Le temps de comparaison et les autres temps de fonctionnement peuvent être ignorés. Les temps d'échange sont donc le goulot d'étranglement critique du problème.la source