Programa Java para implementar el algoritmo de búsqueda binaria

En este ejemplo, aprenderemos a implementar el algoritmo de búsqueda binaria en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Java while y do… while Loop
  • Declaración if … else de Java
  • Matrices de Java

Ejemplo: programa Java para implementar un algoritmo de búsqueda binaria

 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); ) )

Salida 1

 Ingrese el elemento a buscar: 6 Elemento encontrado en el índice 3

Aquí, hemos utilizado Java Scanner Class para recibir información del usuario. Según la entrada del usuario, usamos la búsqueda binaria para verificar si el elemento está presente en la matriz.

También podemos usar la llamada recursiva para realizar la misma tarea.

  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; )

Aquí, el método binarySearch()se llama a sí mismo hasta que se encuentra el elemento o la ifcondición falla.

Si desea obtener más información sobre el algoritmo de búsqueda binaria, visite Algoritmo de búsqueda binaria.

Articulos interesantes...