Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Búsqueda binaria (Binary Search)

Búsqueda binaria (Binary Search)

Por jc mouse jueves, marzo 3, 2016

Un algoritmo de búsqueda binaria se emplea para buscar un valor en particular en un arreglo previamente ordenado. Para implementar este algoritmo se compara el elemento a buscar con un elemento cualquiera del array (normalmente el elemento central) si el valor de éste es mayor que el del elemento buscado se repite el procedimiento en la parte del array que va desde el inicio de éste hasta el elemento tomado, en caso contrario se toma la parte del array que va desde el elemento tomado hasta el final. De esta manera obtenemos intervalos cada vez más pequeños, hasta que se obtenga un intervalo indivisible. Si el elemento no se encuentra dentro de este último entonces se deduce que el elemento buscado no se encuentra en todo el array. Es decir  “Divide y Conquista”

Por ejemplo en un array de números enteros de 19 elementos, previamente ordenado, queremos buscar el número 47, entonces partiríamos de:

binary search

Lo primero que hacemos es dividir el array en 2 y preguntar si el numero del medio es igual, mayor o menor que el número buscado, si es igual, la búsqueda termina. En nuestro ejemplo es mayor por lo que nos olvidamos de la primera mitad, sabemos que el numero que buscamos no esta ahí.

busqueda binaria

Volvemos a dividir el array restante en dos y realizamos la misma pregunta. En esta ocasión el 47 esta en la primera mitad.

java binary

Dividimos una vez más y el array y este continua reduciéndose.

binario netbeans

Finalmente nos quedo un array con solo un elemento, realizamos la misma pregunta y encontramos el número que buscábamos, el 47. La búsqueda termina con solo 4 iteraciones.

binario

Si realizáramos una búsqueda secuencial, es decir: posición 1, posición 2, posición 3, posición 4,etc hasta llegar a la posición que ocupa el numero 47, la misma búsqueda nos hubiera llevado 11 iteraciones.

El algoritmo de búsqueda binaria es sencillo y pequeño, pero a la vez para un programador novato un poco abstracto, por lo que creo es mucho mejor para el aprendizaje, ver el funcionamiento del algoritmo de búsqueda en acción.

El programa de búsqueda (código fuente) mostrado en el video de arriba puede descargarlo gratis a continuación:

<<ENLACE POBRE «Búsqueda Binaria»>>

El código se encuentra comentado 🙂 pero ante cualquier duda, abajo esta la sección de comentarios.

IDE: Netbeans 8 java 8

enjoy!!!

Tags

Artículos similares

Juego: Adivina el número

Problema: Desarrollar un juego en consola con Kotlin que genere un numero aleatorio entre un rango preestablecido y perm[...]

Códigos QR con estilo: Domina la personalización con JavaScript

El desarrollo web moderno exige no solo funcionalidad, sino también un poco de estética diferenciada en cada componente[...]

Dibujar Bitmap en Android

Android cuenta con una serie de herramientas en su API para el trabajo con gráficos, entre estos podemos mencionar: Bitm[...]

Juego de memoria para niños (Código Fuente)

En un post anterior, desarrollamos un swing para simular un efecto FLIP  y recibí algunos mensajes pidiéndome un ejemplo[...]

Graficos estadisticos con javafx y swing

En este post aprenderemos a usar los gráficos 2d que viene con JavaFX en nuestras aplicaciones java swing. Esto puede se[...]

Qulqi: Convierte números a letras en java

Hola 🙂 publicando de tiempo les dejo esta chiti librería java para convertir números a su equivalente literal. La librer[...]