Salut Knuckles,
Effectivement, chaque algorithme de tri a ses propres forces et faiblesses. On t'a sensibilisé à la complexité en espace au cours de tes études, ce qui est une très bonne chose.
Selon moi (qui suis évidemment loin d'être une référence), ces notions de complexités en espace sont surtout utiles pour les systèmes embarqués, sur lesquels la gestion de la mémoire est primordiale.
En règle générale (bien que ça arrive), les langages objets ne sont pas portés sur ce genre de plateformes car la conception objet a de nombreux avantages, mais aussi un coût (notamment en mémoire). C'est pourquoi l'aspect mémoire est beaucoup moins considéré en Java qu'en C ou en assembleur par exemple.
Pour te donner un ordre de grandeur, notre ami Virg62 va trier des entiers sur son PC, équipé de Windows Vista. En Java, la taille d'un int étant de 32 bits, soit 4 octets, créer un tableau de 10000 élément va lui coûter... 39Ko. En créer deux (pour effectuer un tri fusion par exemple) va donc lui coûter 78Ko, ce qui est assez négligeable face aux 1048576 Ko qu'il dispose si on suppose qu'il possède 1Go de mémoire vive (étant équipé de Vista, c'est raisonnable de le penser).
Tout ceci pour dire non pas "la mémoire on s'en fout, on en a à l'infini", mais qu'il faut tout de même optimiser ses choix, l'optimisation ici étant peut-être de dépenser quelques octets de façon linéaire afin de gagner du temps de manière exponentielle.
Après, je conviens tout à fait qu'on peut choisir un tri plus gourmand en temps pour des questions d'optimisation (quoique j'ai du mal à digérer ton bubble sort :D, personnellement j'utiliserais un tri par insertion, en moyenne c'est carrément plus efficace que des permutations successives).
Concernant le quick sort, effectivement faut bien choisir le pivot, mais j'ai tendance à faire confiance aux développeurs de Sun qui nous ont implémenté la méthode sort pour les collections. Niveau code, ils ne sont pas des losers comme moi, donc je pense qu'ils savent comment faire ça bien.
Enfin, dernier point : pourquoi utilises-tu un compte anonyme pour poster ici? Ca pourrait être sympa de te créer un compte pour répondre aux questions intéressantes. Tu as des bonnes connaissances en informatique, ça serait super utile pour les utilisateurs d'avoir une personne compétente de plus qui répond régulièrement à leurs messages.
Ca ne te tente pas?
blogfrisbee point blogspot point com