Masterweb95800
Messages postés10Date d'inscriptionlundi 26 mars 2007StatutMembreDernière intervention17 janvier 2011 2 nov. 2009 à 11:24
Bonjour AlexN,
J'avoue que je n'est pas lancé ton code.
Par contre tout ce qui est de la forme i+1, j= j-1 etc... utilise les opérateur "++" et "--" niveau rapidité c'est les meilleurs ;)
Donc toi tu as:
// Tri
int aux;
for ( i = 1; i <= DIM - 1; i++ ) {
aux = t [i + 1];
t[0] = aux; // sentinelle
j = i;
while (t[j] > aux) { t[j+1] = t[j]; j = j - 1; }
t[j+1] = aux;
}
Moi j'aurais plutôt:
// Tri
int aux;
for ( i = 1; i <= DIM - 1; i++ ) {
aux = t [i++];
t[0] = aux; // sentinelle
j = i;
while (t[j] > aux) { t[j+1] = t[j]; j--; }
t[j++] = aux;
}
ces opérateurs sont implémenté de façon à que le processeur face les calcules beaucoup plus rapidement que avec des i+1, ou i = i +1...
d'ailleur sache que tu peut utiliser aussi ++i ou --i, mais attention le sens est différent de i++ ou i--.
je dis ça peut être tu le sais déjà mais je trouve qu'il vaut mieux optimiser au maximum son code ;) (celà deviens très nécessiteux quand on a de longue boucle.
Autrement ton code manque de beaucoup de commentaires, ce qui pourrais faciliter la lecture de celui-ci. et d'expliquer pourquoi pas ce qu'est une sentinelle pour ceux qui ne savent pas. (comme moi par exemple lol ^^)
Je te fais aucunes reproches ce ne sont que des avis personnel ;)
2 nov. 2009 à 11:24
J'avoue que je n'est pas lancé ton code.
Par contre tout ce qui est de la forme i+1, j= j-1 etc... utilise les opérateur "++" et "--" niveau rapidité c'est les meilleurs ;)
Donc toi tu as:
// Tri
int aux;
for ( i = 1; i <= DIM - 1; i++ ) {
aux = t [i + 1];
t[0] = aux; // sentinelle
j = i;
while (t[j] > aux) { t[j+1] = t[j]; j = j - 1; }
t[j+1] = aux;
}
Moi j'aurais plutôt:
// Tri
int aux;
for ( i = 1; i <= DIM - 1; i++ ) {
aux = t [i++];
t[0] = aux; // sentinelle
j = i;
while (t[j] > aux) { t[j+1] = t[j]; j--; }
t[j++] = aux;
}
ces opérateurs sont implémenté de façon à que le processeur face les calcules beaucoup plus rapidement que avec des i+1, ou i = i +1...
d'ailleur sache que tu peut utiliser aussi ++i ou --i, mais attention le sens est différent de i++ ou i--.
je dis ça peut être tu le sais déjà mais je trouve qu'il vaut mieux optimiser au maximum son code ;) (celà deviens très nécessiteux quand on a de longue boucle.
Autrement ton code manque de beaucoup de commentaires, ce qui pourrais faciliter la lecture de celui-ci. et d'expliquer pourquoi pas ce qu'est une sentinelle pour ceux qui ne savent pas. (comme moi par exemple lol ^^)
Je te fais aucunes reproches ce ne sont que des avis personnel ;)
Cordialement,
Masterweb.