Ho una lista di doppi che devono essere ordinati e cambiati in modo che non ci siano due numeri uguali (differenza inferiore a 0.05) e ho bisogno di farlo velocemente. Non mi interessa preservare l'ordine per valori uguali.
Quello che sto facendo adesso è:
List<double> values;
bool sortfunction(double a, double b)
{
return a < b;
}
.....
qSort(values.start, values.end, sortfunction);
for(int i = 0; i < values.count() - 1; i++)
{
if(values[i] == values[i+1])
{
values[i+1] += 0.1;
}
}
Ma il problema è con elenchi come { 0. ,0. ,0. ,5. ,6.3 }
. Il risultato è { 0. ,0.1 ,0. ,5. ,6.3 }
. Riesci a pensare a qualcosa che non richiede passaggi multipli di ordinamento?