cs_NiFF
Messages postés92Date d'inscriptiondimanche 2 juin 2002StatutMembreDernière intervention24 juin 2004
-
16 juil. 2003 à 14:28
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
7 avril 2007 à 21:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 avril 2007 à 21:37
J'ai enlevé le flag .NET, surement une erreur pendant la dernière migration de nos bases, rien de bien important.
Impossible d'éviter le stockage temporaire partant de 2 adresses mémoire, ce n'est pas parce que tu ne la vois pas qu'elle n'y est pas, le compilo le fera pour toi. Un CPU n'accepte pas 2 opérandes mémoire sur une instruction, c'est ainsi et il n'y a rien à y faire. Le tout n'est pas de savoir si ça "marche aussi bien" mais si c'est plus performant, pour cela il faut regarder le listing asm produit et je redoute fort que ta série de XOR soit bien moins bonne.
spidermario
Messages postés121Date d'inscriptionmercredi 26 octobre 2005StatutMembreDernière intervention14 mars 20091 7 avril 2007 à 20:54
Et au fait, ceci n'est pas une source .Net...
spidermario
Messages postés121Date d'inscriptionmercredi 26 octobre 2005StatutMembreDernière intervention14 mars 20091 7 avril 2007 à 20:53
Pour la fonction d'échange, on peut éviter la variable temporaire avec :
a^=b;
b^=a;
a^=b;
Qui marche aussi bien.
cs_NiFF
Messages postés92Date d'inscriptiondimanche 2 juin 2002StatutMembreDernière intervention24 juin 2004 16 juil. 2003 à 14:28
Bien, mais quelques remarques à faire tout de même :
La présentation de l'algorithme à la fin est très agréable (et très rare).
Idem pour les jeux de test et la complexité.
Cet algo est trop lent sur des tableaux très grands (mieux vaut utiliser le quicksort, déjà existant en C : pour résumer, il coupe le tableau en 2 et trie les deux moitiés du tableau par un appel récursif).
7 avril 2007 à 21:37
Impossible d'éviter le stockage temporaire partant de 2 adresses mémoire, ce n'est pas parce que tu ne la vois pas qu'elle n'y est pas, le compilo le fera pour toi. Un CPU n'accepte pas 2 opérandes mémoire sur une instruction, c'est ainsi et il n'y a rien à y faire. Le tout n'est pas de savoir si ça "marche aussi bien" mais si c'est plus performant, pour cela il faut regarder le listing asm produit et je redoute fort que ta série de XOR soit bien moins bonne.
7 avril 2007 à 20:54
7 avril 2007 à 20:53
a^=b;
b^=a;
a^=b;
Qui marche aussi bien.
16 juil. 2003 à 14:28
La présentation de l'algorithme à la fin est très agréable (et très rare).
Idem pour les jeux de test et la complexité.
Cet algo est trop lent sur des tableaux très grands (mieux vaut utiliser le quicksort, déjà existant en C : pour résumer, il coupe le tableau en 2 et trie les deux moitiés du tableau par un appel récursif).