Programme Java pour implémenter l'algorithme de recherche binaire

Dans cet exemple, nous allons apprendre à implémenter un algorithme de recherche binaire en Java.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:

  • Java pendant et faire… en boucle
  • Instruction Java if… else
  • Tableaux Java

Exemple: programme Java pour implémenter l'algorithme de recherche binaire

 import java.util.Scanner; // Binary Search in Java class Main ( int binarySearch(int array(), int element, int low, int high) ( // Repeat until the pointers low and high meet each other while (low <= high) ( // get index of mid element int mid = low + (high - low) / 2; // if element to be searched is the mid element if (array(mid) == element) return mid; // if element is less than mid element // search only the left side of mid if (array(mid) < element) low = mid + 1; // if element is greater than mid element // search only the right side of mid else high = mid - 1; ) return -1; ) public static void main(String args()) ( // create an object of Main class Main obj = new Main(); // create a sorted array int() array = ( 3, 4, 5, 6, 7, 8, 9 ); int n = array.length; // get input from user for element to be searched Scanner input = new Scanner(System.in); System.out.println("Enter element to be searched:"); // element to be searched int element = input.nextInt(); input.close(); // call the binary search method // pass arguments: array, element, index of first and last element int result = obj.binarySearch(array, element, 0, n - 1); if (result == -1) System.out.println("Not found"); else System.out.println("Element found at index " + result); ) )

Sortie 1

 Entrez l'élément à rechercher: 6 Élément trouvé à l'index 3

Ici, nous avons utilisé la classe de scanner Java pour prendre les entrées de l'utilisateur. Sur la base de l'entrée de l'utilisateur, nous avons utilisé la recherche binaire pour vérifier si l'élément est présent dans le tableau.

Nous pouvons également utiliser l'appel récursif pour effectuer la même tâche.

  int binarySearch(int array(), int element, int low, int high) ( if (high>= low) ( int mid = low + (high - low) / 2; // check if mid element is searched element 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; )

Ici, la méthode binarySearch()s'appelle elle-même jusqu'à ce que l'élément soit trouvé ou que la ifcondition échoue.

Si vous souhaitez en savoir plus sur l'algorithme de recherche binaire, visitez Algorithme de recherche binaire.

Articles intéressants...