Il s'avère que l'un des plus importants bottelnecks (ralentissements) est provoqué par un aglo de tri, qui me sert à classer dans l'ordre décroissant des valeurs de type double, dont le nombre peut aller de quelques-unes à plusieurs milliers.
N'étant pas un vrai programmeur et ayant suivi les conseils que j'ai pu trouver, j'utilise pour l'instant un algo de "tri a bulles", réputé rapide. Alors peut-être que ma version de l'algo est sous-optimale et peut-être même que ce n'est pas le bon algo, si vous pouviez m'aider je vous en serais reconnaissant
CODE
private void triBulle(double[] valeurs) {
int i;
boolean permut = true;
double tempVal = 0;
int tempNdx = 0;
for (i = 0; i < valeurs.length; i++) {
posDec[i] = i;
}
while (permut == true) {
permut = false;
for (i = 0; i < (valeurs.length - 1); i++) {
if (valeurs[i] < valeurs[i + 1]) {
tempVal = valeurs[i];
valeurs[i] = valeurs[i + 1];
valeurs[i + 1] = Math.abs(tempVal);
tempNdx = posDec[i];
posDec[i] = posDec[i + 1];
posDec[i + 1] = tempNdx;
permut = true;
}
}
}
}
int i;
boolean permut = true;
double tempVal = 0;
int tempNdx = 0;
for (i = 0; i < valeurs.length; i++) {
posDec[i] = i;
}
while (permut == true) {
permut = false;
for (i = 0; i < (valeurs.length - 1); i++) {
if (valeurs[i] < valeurs[i + 1]) {
tempVal = valeurs[i];
valeurs[i] = valeurs[i + 1];
valeurs[i + 1] = Math.abs(tempVal);
tempNdx = posDec[i];
posDec[i] = posDec[i + 1];
posDec[i + 1] = tempNdx;
permut = true;
}
}
}
}