English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans cet exemple, nous allons apprendre à implémenter l'algorithme de recherche binaire en Java.
Avant de comprendre l'implémentation de la recherche binaire en Java, assurez-vous que vous comprenez le principe de l'algorithme de recherche binaire.
import java.util.Scanner; //Recherche binaire en Java class Main { int binarySearch(int array[], int element, int low, int high) { //Répéter ce processus jusqu'à ce que les pointeurs haut (high) et bas (low) soient égaux while (low <= high) { //Obtenir l'index de l'élément mid int mid = low + (high - low) / 2; //Si l'élément à chercher est l'élément mid if (array[mid] == element) return mid; //Si l'élément est inférieur à l'élément mid //Chercher uniquement à gauche de mid if (array[mid] < element) low = mid + 1; //Si l'élément est supérieur à l'élément mid //Chercher uniquement à droite de mid else high = mid - 1; } return -1; } public static void main(String args[]) { //Créer un objet de la classe Main Main obj = new Main(); //Créer un tableau trié int[] array = { 3, 4, 5, 6, 7, 8, 9 }; int n = array.length; //Obtenir l'entrée de l'utilisateur, élément à chercher Scanner input = new Scanner(System.in); System.out.println("Entrer l'élément à chercher:"); //Élément à chercher int element = input.nextInt(); input.close(); //Appeler la méthode de recherche binaire //Passer les paramètres: tableau, élément, index du premier et du dernier éléments int result = obj.binarySearch(array, element, 0, n - 1); if (result == -1) System.out.println("Non trouvé"); else System.out.println("Trouver l'élément, à l'index " + result); } }
Sortie1
Entrer l'élément à chercher: 6 Trouver l'élément, à l'index 3
Ici, nous avons utiliséClasse Scanner JavaObtenir l'entrée de l'utilisateur. Selon l'entrée de l'utilisateur, nous avons utilisé la recherche binaire pour vérifier si l'élément existe dans le tableau.
We can also use recursive calls to perform the same task.
int binarySearch(int array[], int element, int low, int high) { if (high >= low) { int mid = low + (high - low) / 2; // Check if the mid element is the element being searched if (array[mid] == element) return mid; //Search the left half of mid if (array[mid] > element) return binarySearch(array, element, low, mid - 1); //Search the right half of mid return binarySearch(array, element, mid + 1, high); } return -1; }
Here, the method binarySearch() will call itself until the element is found or the if condition fails.