binaire Ceci est mon-recherche binaire:Mettre en œuvre la recherche
int binarySearch(int arr[], int value, int min, int max){
int pos = -1;
while (max >= min && pos == -1) {
int mid = (max+min)/2;
if(arr[mid] == value){
pos = mid;
}else if(arr[mid] < value){
min = mid +1;
}else if(arr[mid] > value){
max = mid -1;
}
}
return pos;
}
Je l'appelle ainsi:
//Arr contain values 0-63
int i = binarySearch(arr, 64, 0, 64);
Ce sont les valeurs moyennes
32 48 56 60 62 63 64
Au dernier chèque I essayez d'accéder à un élément à la position 64, lorsque la dernière position dans le tableau est 63.
Quel est le problème avec ma mise en œuvre?
Je suggère de parcourir le code dans un débogueur, ligne par ligne, tout en vérifiant les valeurs de 'max',' min' et 'mid'. Assurez-vous également que le tableau est effectivement trié. –
Le code fonctionne bien avec moi sur les blocs de code. Assurez-vous que le tableau est trié et contient exactement 64 éléments –
-1 pour le vidage de votre lien dans le chat. – Puppy