¿Qué es la búsqueda binaria en Java? ¿Cómo implementarlo?



La búsqueda binaria en Java es un algoritmo de búsqueda que encuentra la posición de un valor objetivo dentro de una matriz ordenada. En este artículo te diré cómo implementarlo con la ayuda de un ejemplo.

Los algoritmos de búsqueda y clasificación son los algoritmos populares en cualquier lenguaje de programación. Son la base para comprender los fundamentos de la programación. Uno de esos algoritmos de búsqueda populares es la búsqueda binaria en . En este artículo te contaré todo sobre su implementación.

En este artículo se tratan los siguientes temas:





¡Empecemos!

¿Qué es la búsqueda binaria?

Búsqueda binaria en es un algoritmo de búsqueda que encuentra la posición de un valor objetivo dentro de un formación . Búsqueda binaria compara el valor objetivo con el elemento medio de la matriz. Esofunciona solo en un conjunto ordenado de elementos. Para utilizar la búsqueda binaria en una colección, el primero debe ser ordenado.



Programa de búsqueda binaria en Java - Búsqueda binaria en Java - EdurekaCuando el se utiliza para realizar operaciones en un conjunto ordenado, el número de iteraciones siempre se puede reducir en función del valor que se está buscando. Puede ver en la instantánea anterior cómo encontrar el elemento medio . La analogía de la búsqueda binaria es usar la información que la matriz está ordenada y reducir la complejidad del tiempo para O (log n) .

Implementación del algoritmo de búsqueda binaria

Echemos un vistazo al pseudocódigo a continuación para entenderlo de una mejor manera.

Procedimiento binary_search A & larr ordenado arreglo n & larr tamaño del arreglo x & larr valor a buscar Establecer bajo = 1 Establecer alto = n mientras x no se encuentra si es alto

Explicación:



Paso 1: Primero, compare x con el elemento del medio.

Paso 2: Si x coincide con el elemento del medio, debe devolver el índice medio.

Paso 3: De lo contrario, si x es mayor que el elemento medio, entonces x solo puede estar en la mitad derecha de la matriz después del elemento medio. Por lo tanto, recurre a la mitad derecha.

Etapa 4: De lo contrario, si (x es menor), repita para la mitad izquierda.

Así es como debe buscar el elemento en la matriz dada.

etiqueta html para insertar un salto de línea

Veamos ahora cómo implementar un algoritmo de búsqueda binaria de forma recursiva. El siguiente programa demuestra lo mismo.

Búsqueda binaria recursiva

public class BinarySearch {// Implementación Java de la búsqueda binaria recursiva // Devuelve el índice de x si está presente en arr [l..h], de lo contrario devuelve -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Si el elemento está presente en el medio si (a [mid] == x) return mid // Si el elemento es más pequeño que mid, entonces solo puede estar presente en el subarreglo izquierdo si (a [mid]> x) return binarySearch (arr, l, mid - 1, x) // De lo contrario, el elemento solo puede estar presente en el subarreglo derecho return binarySearch (arr, mid + 1, h, x)} // Llegamos aquí cuando el elemento no está presente en la matriz return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a.length int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('Elemento no presente') else System.out.println ('Elemento encontrado en el índice' + res)}}

Al ejecutar el programa anterior, localizará el elemento presente en el índice particular

Elemento encontrado en el índice 2

Así que esto nos lleva al final de la búsqueda binaria en Java artículo. Espero que lo haya encontrado informativo y lo haya ayudado a comprender .

Revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. Estamos aquí para ayudarlo en cada paso de su viaje, para que se convierta en una pregunta adicional de esta entrevista de Java. Creamos un plan de estudios diseñado para estudiantes y profesionales que desean ser desarrolladores de Java. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

En caso de que tenga alguna dificultad al implementar la búsqueda binaria en , menciónelo en la sección de comentarios a continuación y nos comunicaremos con usted lo antes posible.