Les cas erronés (résumé : le premier swap ne marche pas sur les bool et tous les flottants) :
swap+ type=b avant A=1 B=1 après A=1 B=0 swap+ type=b avant A=1 B=1 après A=1 B=0 swap+ type=b avant A=1 B=1 après A=1 B=0 swap+ type=f avant A=3.40282e+38 B=42 après A=0 B=3.40282e+38 swap+ type=f avant A=1.17549e-38 B=42 après A=42 B=0 swap+ type=f avant A=3.40282e+38 B=3.40282e+38 après A=-nan B=inf swap+ type=f avant A=1.17549e-38 B=3.40282e+38 après A=3.40282e+38 B=0 swap+ type=f avant A=3.40282e+38 B=1.17549e-38 après A=0 B=3.40282e+38 swap+ type=d avant A=1.79769e+308 B=42 après A=0 B=1.79769e+308 swap+ type=d avant A=2.22507e-308 B=42 après A=42 B=0 swap+ type=d avant A=1.79769e+308 B=1.79769e+308 après A=-nan B=inf swap+ type=d avant A=2.22507e-308 B=1.79769e+308 après A=1.79769e+308 B=0 swap+ type=d avant A=1.79769e+308 B=2.22507e-308 après A=0 B=1.79769e+308 swap+ type=e avant A=1.18973e+4932 B=42 après A=0 B=1.18973e+4932 swap+ type=e avant A=3.3621e-4932 B=42 après A=42 B=0 swap+ type=e avant A=1.18973e+4932 B=1.18973e+4932 après A=-nan B=inf swap+ type=e avant A=3.3621e-4932 B=1.18973e+4932 après A=1.18973e+4932 B=0 swap+ type=e avant A=1.18973e+4932 B=3.3621e-4932 après A=0 B=1.18973e+4932
Et le second swap ne marche pas sur les flottants.
[^] # Re: Autre méthode
Posté par Benoît Sibaud (site web personnel) . En réponse à la dépêche Dans les kiosques cet été 2011. Évalué à 9. Dernière modification le 07 août 2011 à 17:34.
Je n'ai pas lu l'article, mais ça avait l'air marrant alors j'ai testé rapidement en C++ :
Les cas erronés (résumé : le premier swap ne marche pas sur les bool et tous les flottants) :
swap+ type=b avant A=1 B=1 après A=1 B=0swap+ type=b avant A=1 B=1 après A=1 B=0swap+ type=b avant A=1 B=1 après A=1 B=0swap+ type=f avant A=3.40282e+38 B=42 après A=0 B=3.40282e+38swap+ type=f avant A=1.17549e-38 B=42 après A=42 B=0swap+ type=f avant A=3.40282e+38 B=3.40282e+38 après A=-nan B=infswap+ type=f avant A=1.17549e-38 B=3.40282e+38 après A=3.40282e+38 B=0swap+ type=f avant A=3.40282e+38 B=1.17549e-38 après A=0 B=3.40282e+38swap+ type=d avant A=1.79769e+308 B=42 après A=0 B=1.79769e+308swap+ type=d avant A=2.22507e-308 B=42 après A=42 B=0swap+ type=d avant A=1.79769e+308 B=1.79769e+308 après A=-nan B=infswap+ type=d avant A=2.22507e-308 B=1.79769e+308 après A=1.79769e+308 B=0swap+ type=d avant A=1.79769e+308 B=2.22507e-308 après A=0 B=1.79769e+308swap+ type=e avant A=1.18973e+4932 B=42 après A=0 B=1.18973e+4932swap+ type=e avant A=3.3621e-4932 B=42 après A=42 B=0swap+ type=e avant A=1.18973e+4932 B=1.18973e+4932 après A=-nan B=infswap+ type=e avant A=3.3621e-4932 B=1.18973e+4932 après A=1.18973e+4932 B=0swap+ type=e avant A=1.18973e+4932 B=3.3621e-4932 après A=0 B=1.18973e+4932Et le second swap ne marche pas sur les flottants.