question du jour 2 - le retour
|
31-05-2014, 16h50
Message : #12
|
|
gruik
![]() gouteur de savon ![]() Messages : 757 Sujets : 44 Points: 483 Inscription : Oct 2012 |
RE: question du jour 2 - le retour
(31-05-2014, 12h23)notfound a écrit : Bon comme persone s'est décidé à le faire, je le fais. je l'ai fait dans la nuit, pas totalement fini donc j'ai pas posté les résultats :p mais merci à toi du coup j'apporte juste quelques précisions : - le code d'atlas, ben oui à chaque fois il fait le même coup en fait il livre un code java pas directement compilable, je sais pas pourquoi... je rajoute son code pour ceux que ça intéressera : Code JAVA :
import java.io.*; - mon oneliner Perl n'est pas valide, il ne fait pas ce qu'il est censé faire, mais ça n'influe pas des masses sur le temps de traitement au final, le code valide est le suivant : Code PERL :
perl -ne 'if (/^\d+$/) {push(@tab, $_)} else {print join("", sort { $a <=> $b } @tab); print; undef @tab}' fichier - les oneliners Python (le miens et celui de eax64) vautrent lamentablement : Code : Traceback (most recent call last): - le code de Dobry (Ruby) m'a défoncé la RAM (4G) en moins de 3s, dommage - je me suis amusé à faire une implé en C, évidement spécifique et très adaptée au fichier d'entrée pour le coup, mais bon... Code C :
#include <stdio.h> j'ai effectué les mesures sur un fichier de 57M contenant un très grand nombre de paragraphes chaque paragraphe contenant un petit nombre de lignes, donc en clair ce n'est pas tant la qualité de l'algorithme de tri qui est mesuré ici (même si ça contribuera forcément) c'est la qualité de l'algorithme de parcours du fichier, la mesure est réalisée avec une ligne du genre : Code : $ for i in 1 2 3; do /usr/bin/time -f "%es, %MKo, %C" -- <code ici> >/dev/null; done Code : 2.38s, 2352Ko, ./code_c_gruik fichier on remaque que Perl et Python sont dans un mouchoir de poche finalement ici, légèrement devancés par le awk de Notfound et suivis de près par l'implémentation en Java le code C quant à lui bat évidement tous les records puisqu'il est tourné spécifiquement pour cette problématique et ce fichier de tests précis (notez néanmoins qu'on pourrait le rendre plus générique à moindre cout en jouant du realloc plutot que d'avoir un tableau d'entiers fixe, ou même quitte à allouer 8K pour le tableau c'est pas un souci) en fait la grande surprise vient du code Haskell, y'a eu une méprise quelque part, son code aurait été échangé par mégarde dans la soute, je vois que ça...
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure. Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau, L'Art poétique) |
|
« Sujet précédent | Sujet suivant »
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
question du jour | gruik | 9 | 3,360 |
12-11-2013, 16h10 Dernier message: gruik |
|
Question pour la création de mon site... | Wabouz | 10 | 3,886 |
05-03-2013, 21h14 Dernier message: Wabouz |
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)