JeuWeb - Crée ton jeu par navigateur
Le meillieur algo de tri pour des nombres? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Le meillieur algo de tri pour des nombres? (/showthread.php?tid=4794)

Pages : 1 2 3


RE: Le meillieur algo de tri pour des nombres? - Sephi-Chan - 08-05-2010

(08-05-2010, 04:16 PM)Argorate a écrit : Comme me l'a dit un prof de math que j'ai beaucoup apprécié, chercher a comprendre n'est jamais une perte de temps Smile
Je suis curieux de savoir la différence de temps d'execution tu vois...

Et bien fais des mesures. Ce n'est pas compliqué et au moins, tu auras des réponses (que tu pourras partager).

Je suis entièrement d'accord avec toi sur l'importance de comprendre ce qu'on fait (ou comprendre le fonctionnement des outils qu'on utilise).

Cependant, entre chercher à comprendre et réinventer la roue, il y a un monde.
A titre d'exemple, tu perds un temps monstrueux à développer from scratches alors qu'utiliser un framework (et le comprendre) te ferait bien plus progresser, autant sur le plan technique que sur celui des architectures logicielles).


Sephi-Chan


RE: Le meillieur algo de tri pour des nombres? - Allwise - 09-05-2010

Si tu veux chercher à comprendre, tu peux télécharger les sources de PHP, et farfouiller dans les sources ( en C ), pour regarder comment est fait le tri de la fonction sort() ( regarde dans /ext/standard/array.c ).

La comparaison entre un langage compilé et un langage interprété est très simple : le compilé est beaucoup plus rapide. Après, dis-toi que les mecs qui ont développé PHP sont quand même un poil calés et savent ce qu'ils font. Tout n'est pas parfait dans PHP, y a peut-être des optimisations à faire, mais sur des fonctions aussi simples cherche pas, tu pourras rien faire, surtout quand tu dis que t'as même pas une dizaine d'enregistrements à trier. Même la méthode la plus lourde de tri ne donnerait pas de performances différentes du quicksort pour 5 enregistrements. De plus, le tri d'un tableau est un algo qui a été tourné / retourné dans tous les sens depuis que la notion de tableau existe tellement il est couramment utilisé.

Faut pas non plus que t'oublies que quand tu fais sort($monTableau);, tu appelles une seule fonction PHP, et que le chemin entre la fonction sort() en PHP et l'équivalent en C doit être court. Si tu fais ton propre algo en PHP, tu vas faire tout plein de boucles et d'assignations en PHP, qui seront tout autant d'instructions à être parsées / interprétés par Zend Engine ( le moteur de PHP ).
Ça peut avoir du sens pour des trucs beaucoup plus lourds, mais pas pour les fonctions toutes simples comme sort, derrière lesquelles il y a déjà des algos super robustes.

Si t'as envie de comprendre les rouages de PHP, fais des recherches sur Zend Engine, l'opcode, lis le code source de PHP, fais des tests Wink


RE: Le meillieur algo de tri pour des nombres? - Argorate - 10-05-2010

J'ai fais mon test par curiosité j'obtient un facteur d'environ 5 sur un tableau de 5 éléments Smile

Citation :Pour 1 000 000 de boucle et 5 elements:

Temps moyen fonction Sort(): 0,0000043740923404694 secondes (Temps total d'exec. : 4,3740923404694secondes)

Temps moyen fonction TriRapide(): 0,00002163563370704651 secondes (Temps total d'exec. : 21,635633707047secondes)

Big Grin