le soucis c'est que tu prends quand même un postulat de départ qui n'a pas de base mathématique, que le min ou le max te renvoient le premier ou le dernier élément d'une liste triée n'est vrai que lorsque tu as un ordre absolu. Que chaque langage ait sont propre comportement me semble logique.
L'ordre absolu c'est dire que quel que soit x et y dans un ensemble, on peut montrer que x <= y ou y <= x, bref on peut mettre une relation d'ordre entre deux éléments de ton ensemble, c'est le cas de mon ensemble de tuple (string, int) que j'ai présenté. La particularité de cet ensemble c'est que on peut distinguer les éléments qui sont égaux. Ainsi, une permutation de deux éléments égaux ne change rien au niveau de la relation d'ordre mais change le résultat. Et c'est là que on s'attend à un tri stable pour ne pas changer ce résultat.
Mais bon, au final, le but de mon article écrit ce matin dans un moment de procrastinationW compilation était de discuter comment un petit détail aussi insignifiant que l’implémentation d'une fonction max peut totalement bouleverser un algorithme.
[^] # Re: en c++ tu as des subtilité
Posté par Guillaum (site web personnel) . En réponse au journal Cohérence des fonctions de tri. Évalué à 3.
L'ordre absolu c'est dire que quel que soit
xetydans un ensemble, on peut montrer quex <= youy <= x, bref on peut mettre une relation d'ordre entre deux éléments de ton ensemble, c'est le cas de mon ensemble de tuple(string, int)que j'ai présenté. La particularité de cet ensemble c'est que on peut distinguer les éléments qui sont égaux. Ainsi, une permutation de deux éléments égaux ne change rien au niveau de la relation d'ordre mais change le résultat. Et c'est là que on s'attend à un tri stable pour ne pas changer ce résultat.Mais bon, au final, le but de mon article écrit ce matin dans un moment de procrastinationW compilation était de discuter comment un petit détail aussi insignifiant que l’implémentation d'une fonction
maxpeut totalement bouleverser un algorithme.