Ciao a tutti ragazzi!!
Ritorno con un ennesimo quesito esistenziale.
Ho realizzato un metodo binary search, non definito statico per altre ragioni, ma che comunque funziona su un vettore double[]. Il mio problema ora è andare ad implementare un modo per far restituire non tanto il valore -1 se non viene trovato l'elemento, quanto il valore (-(insertion point) - 1), proprio come fa il metodo binarySearch() della classe Arrays di java. Il problema è che, provando con varie soluzioni, non sono riuscito a venirne a capo.
Eccolo qui (a è il mio private double[]):
codice:
public int binarySearch(double number)
{
int low = 0;
int high = a.length - 1;
int insertionPoint = 0;
while (low <= high)
{
int middle = (low + high) / 2;
if (a[middle] == number)
return middle;
else if (a[middle] < number)
{
low = middle + 1;
insertionPoint = low;
}
else
{
high = middle - 1;
insertionPoint = high;
}
}
if (high <= 0 || low <= 0) insertionPoint ++;
return -insertionPoint - 1;
}
Qualcuno saprebbe darmi una mano in merito?? Grazie mille in anticipo 