Ceci est ma logique pour la recherche binaire et quand j'essaie de l'exécuter il donne moi erreur de stackoverflow .... J'ai écrit la condition de base aussi. Où est le point d'erreur exact en elle. Pour ce code, j'ai pris un tableau global avec une valeur prédéfinie et donné initialIndex = 0 initialement et lastIndex = intArray.length-1;Pourquoi cette fonction récursive lance l'erreur StackOverFlow ??? c'est ma logique pour la recherche binaire et Où est le point d'erreur exact
public static void binarySearchInteger(int searchingElement,int
startingIndex,int lastIndex) {
middleIndex=(startingIndex+lastIndex)/2;
if(searchingElement==intArray[middleIndex])
System.out.println("Found the Element");
else if(startingIndex==lastIndex&&
searchingElement!=intArray[middleIndex])
System.out.println("There is no such Element");
else {
if(intArray[middleIndex]>searchingElement)
binarySearchInteger(searchingElement,
startingIndex,middleIndex);
else
binarySearchInteger(searchingElement,middleIndex,lastIndex);
}
}
Quelles sont vos valeurs? avez-vous débuggé? Quelle est la taille de votre tableau? – Stultuske
Votre tableau est-il trié? – Eran
Déboguez votre code. – f1sh