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[]):
Qualcuno saprebbe darmi una mano in merito?? Grazie mille in anticipocodice: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; }
![]()


Rispondi quotando