SlideShare una empresa de Scribd logo
BUSQUEDA BINARIA
La búsqueda binaria consiste en dividir el intervalo de búsqueda
en dos partes, comparando el elemento buscado con el que
ocupa la posición central en el arreglo. Para el caso de que no
fueran iguales se redefinen los extremos del intervalo, según el
elemento central sea mayor o menor que el elemento
buscado, disminuyendo de esta forma el espacio de búsqueda. El
proceso concluye cuando el elemento es encontrado, o cuando el
intervalo de búsqueda se anula, es vacío.
El método de búsqueda binaria funciona exclusivamente con
arreglos ordenados. No se puede utilizar con listas simplemente
ligadas no podríamos retroceder para establecer intervalos de
búsqueda ni con arreglos desordenados. Con cada iteración del
método el espacio de búsqueda se reduce a la mitad; por lo
tanto, el número de comparaciones a realizar disminuye
notablemente. Esta disminución resulta significativa cuanto más
grande sea el tamaño del arreglo.
BUSQUEDA BINARIA
La filosofía del algoritmo es la de Divide et impera, en el que la idea
es separar el problema en partes mas pequeñas, descartando lo que
no me sirve y quedándome con los rangos útiles. Los algoritmos de
este tipo, que descargan la mitad de los datos en cada
comparación, se dice que son de un orden de complejidad de:
log( N )
Donde N es la cantidad de elementos de nuestra colección de datos.
Así podemos saber que en cada pasada, nos quedaran la mitad de los
elementos, algo muy importante a al hora de optimizar recursos.
BUSQUEDA BINARIA
¿Como funciona la búsqueda binaria?
Necesitamos una seria de datos para realizar la búsqueda: El
elemento en la posición inicio, fin, medio. Y por supuesto el tamaño
del vector y elemento que queremos buscar.
inicio = 0;
fin = tam – 1;
medio = (inicio + fin) / 2;
Preguntamos si el elemento buscado es igual al elemento que se
encuentra en la posición medio del array, si es afirmativo ya
encontramos el elemento y no hay nada más que hacer.
1 if(buscado == array[medio]){
2 cout << "Se encuentra en la posición " << medio + 1 << endl;
3 return array[medio];
4 }
BUSQUEDA BINARIA
Si no es así. Preguntamos si el elemento que se encuentra en la
posición medio es mayor al elemento buscado, si es afirmativo y
como el array está ordenado, quiere decir que elemento buscado
es menor al del medio. Entonces ahora solo buscaríamos en esa
división del array,
por lo tanto, el fin ahora sería el elemento anterior al medio.
1 if(array[medio] > buscado){
2 fin = medio - 1;
3 }
BUSQUEDA BINARIA
De lo contrario quiere decir que elemento buscado es mayor al del
medio, entonces debemos buscar en la otra división del array, por lo
tanto el inicio sería el elemento posterior al medio.
1 else {
2 inicio = medio + 1;
3 }
Con cualquiera de estas 2 operaciones descartamos la otra mitad del
array y por lo tanto reducimos notablemente el número de
iteraciones.
Por lo tanto, en cada iteración, la búsqueda se reduce a la mitad del
array. Realizamos esto en un bucle mientras el inicio sea menor o igual
al fin.
BUSQUEDA BINARIA
Ejemplo: dado el Vector $v=array (1,2,3,4,12,13,14) y se quiere buscar el
elemento [12]
BUSQUEDA BINARIA
Ejemplo usando PHP:
<?php
/* archivo: BusquedadBinaria.php
Función: Buscar un elemento en un array desordenado
*/
function busquedadBinaria($a,$valor);
{ $izq=0;
$der=sizeof($a)-1;
$n=-1;
while($inico < $ultimo )
{ int $medio=($izq+$der)/2
if ($a[$medio]==$valor)
{ $n=$medio; }
elseif ($a[$medio] < $valor)
{ $izq = $medio; }
elseif ($a[$medio] > $valor)
{ $der = $medio; }
}
return $n;
}
?>
BUSQUEDA BINARIA
Ejemplo usando PHP:
<?php
/* archivo: BusquedadPrincipal.php
Funcion: Muestra si un valor($numero) se encuentra en el vector
*/
include "BusquedadBinaria.php";
include "MetodoBurbuja.php";
$vector=array(3,4,67,2,9,12,4,76,54,7);
$numero=4;
$vector= metodoBurbuja($vector);
$posicion= busquedadBinaria($vector,$nuemro);
if ($posicion > -1)
{
echo " El Valor $numero se encuentra en la posición $posicion del vector"; }
else {
echo " El Valor $numero se No encuentra en vector"; }
?>

Más contenido relacionado

La actualidad más candente

Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
Cristopher Morales Ruiz
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
Blanca Parra
 
Tipos de búsqueda en inteligencia artificial
Tipos de búsqueda  en inteligencia artificialTipos de búsqueda  en inteligencia artificial
Tipos de búsqueda en inteligencia artificial
Henry Cambal
 

La actualidad más candente (20)

Búsqueda Binaria
Búsqueda BinariaBúsqueda Binaria
Búsqueda Binaria
 
Cuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busquedaCuadro comparativo algoritmos de busqueda
Cuadro comparativo algoritmos de busqueda
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externa
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Método de búsqueda binaria
Método de búsqueda binariaMétodo de búsqueda binaria
Método de búsqueda binaria
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenada
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivos
 
Metodo de busqueda secuencial
Metodo de busqueda secuencialMetodo de busqueda secuencial
Metodo de busqueda secuencial
 
Aritmetica Modular
Aritmetica ModularAritmetica Modular
Aritmetica Modular
 
Tipos de búsqueda en inteligencia artificial
Tipos de búsqueda  en inteligencia artificialTipos de búsqueda  en inteligencia artificial
Tipos de búsqueda en inteligencia artificial
 
Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
Busquedas binarias y secuenciales
Busquedas binarias y secuencialesBusquedas binarias y secuenciales
Busquedas binarias y secuenciales
 

Similar a Expo busqueda binaria

busquedasecuencial,binaria,binariarecursiva,.pptx
busquedasecuencial,binaria,binariarecursiva,.pptxbusquedasecuencial,binaria,binariarecursiva,.pptx
busquedasecuencial,binaria,binariarecursiva,.pptx
HUBERTJAREDJIMENEZQU
 
Algoritmo de busqueda truncamiento
Algoritmo de busqueda truncamientoAlgoritmo de busqueda truncamiento
Algoritmo de busqueda truncamiento
javiervilugron
 
Administrador,+7.pdf
Administrador,+7.pdfAdministrador,+7.pdf
Administrador,+7.pdf
GIAMMARCOSPEREZYUPAN
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busqueda
Gonzalo Retamal
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y Búsqueda
Javier Alvarez
 

Similar a Expo busqueda binaria (20)

ALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptxALGORITMO DE BUSQUEDA.pptx
ALGORITMO DE BUSQUEDA.pptx
 
Método de búsqueda binaria
Método de búsqueda binariaMétodo de búsqueda binaria
Método de búsqueda binaria
 
Método de búsqueda binaria
Método de búsqueda binariaMétodo de búsqueda binaria
Método de búsqueda binaria
 
Método de búsqueda binaria
Método de búsqueda binariaMétodo de búsqueda binaria
Método de búsqueda binaria
 
Búsqueda binaria iterativa
Búsqueda binaria iterativaBúsqueda binaria iterativa
Búsqueda binaria iterativa
 
Busqueda c++
Busqueda c++Busqueda c++
Busqueda c++
 
metodos de busqueda
metodos de busquedametodos de busqueda
metodos de busqueda
 
Metodo de busqueda binario koby
Metodo de busqueda binario kobyMetodo de busqueda binario koby
Metodo de busqueda binario koby
 
busquedasecuencial,binaria,binariarecursiva,.pptx
busquedasecuencial,binaria,binariarecursiva,.pptxbusquedasecuencial,binaria,binariarecursiva,.pptx
busquedasecuencial,binaria,binariarecursiva,.pptx
 
Algoritmo de busqueda truncamiento
Algoritmo de busqueda truncamientoAlgoritmo de busqueda truncamiento
Algoritmo de busqueda truncamiento
 
Administrador,+7.pdf
Administrador,+7.pdfAdministrador,+7.pdf
Administrador,+7.pdf
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busqueda
 
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
 
Algoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y BúsquedaAlgoritmo, Ordenacion y Búsqueda
Algoritmo, Ordenacion y Búsqueda
 
Busqueda de datos
Busqueda de datosBusqueda de datos
Busqueda de datos
 
concepto de estructuras de datos
concepto de estructuras de datosconcepto de estructuras de datos
concepto de estructuras de datos
 
Programacion
ProgramacionProgramacion
Programacion
 
Presentacion programacion
Presentacion programacionPresentacion programacion
Presentacion programacion
 

Expo busqueda binaria

  • 1. BUSQUEDA BINARIA La búsqueda binaria consiste en dividir el intervalo de búsqueda en dos partes, comparando el elemento buscado con el que ocupa la posición central en el arreglo. Para el caso de que no fueran iguales se redefinen los extremos del intervalo, según el elemento central sea mayor o menor que el elemento buscado, disminuyendo de esta forma el espacio de búsqueda. El proceso concluye cuando el elemento es encontrado, o cuando el intervalo de búsqueda se anula, es vacío. El método de búsqueda binaria funciona exclusivamente con arreglos ordenados. No se puede utilizar con listas simplemente ligadas no podríamos retroceder para establecer intervalos de búsqueda ni con arreglos desordenados. Con cada iteración del método el espacio de búsqueda se reduce a la mitad; por lo tanto, el número de comparaciones a realizar disminuye notablemente. Esta disminución resulta significativa cuanto más grande sea el tamaño del arreglo.
  • 2. BUSQUEDA BINARIA La filosofía del algoritmo es la de Divide et impera, en el que la idea es separar el problema en partes mas pequeñas, descartando lo que no me sirve y quedándome con los rangos útiles. Los algoritmos de este tipo, que descargan la mitad de los datos en cada comparación, se dice que son de un orden de complejidad de: log( N ) Donde N es la cantidad de elementos de nuestra colección de datos. Así podemos saber que en cada pasada, nos quedaran la mitad de los elementos, algo muy importante a al hora de optimizar recursos.
  • 3. BUSQUEDA BINARIA ¿Como funciona la búsqueda binaria? Necesitamos una seria de datos para realizar la búsqueda: El elemento en la posición inicio, fin, medio. Y por supuesto el tamaño del vector y elemento que queremos buscar. inicio = 0; fin = tam – 1; medio = (inicio + fin) / 2; Preguntamos si el elemento buscado es igual al elemento que se encuentra en la posición medio del array, si es afirmativo ya encontramos el elemento y no hay nada más que hacer. 1 if(buscado == array[medio]){ 2 cout << "Se encuentra en la posición " << medio + 1 << endl; 3 return array[medio]; 4 }
  • 4. BUSQUEDA BINARIA Si no es así. Preguntamos si el elemento que se encuentra en la posición medio es mayor al elemento buscado, si es afirmativo y como el array está ordenado, quiere decir que elemento buscado es menor al del medio. Entonces ahora solo buscaríamos en esa división del array, por lo tanto, el fin ahora sería el elemento anterior al medio. 1 if(array[medio] > buscado){ 2 fin = medio - 1; 3 }
  • 5. BUSQUEDA BINARIA De lo contrario quiere decir que elemento buscado es mayor al del medio, entonces debemos buscar en la otra división del array, por lo tanto el inicio sería el elemento posterior al medio. 1 else { 2 inicio = medio + 1; 3 } Con cualquiera de estas 2 operaciones descartamos la otra mitad del array y por lo tanto reducimos notablemente el número de iteraciones. Por lo tanto, en cada iteración, la búsqueda se reduce a la mitad del array. Realizamos esto en un bucle mientras el inicio sea menor o igual al fin.
  • 6. BUSQUEDA BINARIA Ejemplo: dado el Vector $v=array (1,2,3,4,12,13,14) y se quiere buscar el elemento [12]
  • 7. BUSQUEDA BINARIA Ejemplo usando PHP: <?php /* archivo: BusquedadBinaria.php Función: Buscar un elemento en un array desordenado */ function busquedadBinaria($a,$valor); { $izq=0; $der=sizeof($a)-1; $n=-1; while($inico < $ultimo ) { int $medio=($izq+$der)/2 if ($a[$medio]==$valor) { $n=$medio; } elseif ($a[$medio] < $valor) { $izq = $medio; } elseif ($a[$medio] > $valor) { $der = $medio; } } return $n; } ?>
  • 8. BUSQUEDA BINARIA Ejemplo usando PHP: <?php /* archivo: BusquedadPrincipal.php Funcion: Muestra si un valor($numero) se encuentra en el vector */ include "BusquedadBinaria.php"; include "MetodoBurbuja.php"; $vector=array(3,4,67,2,9,12,4,76,54,7); $numero=4; $vector= metodoBurbuja($vector); $posicion= busquedadBinaria($vector,$nuemro); if ($posicion > -1) { echo " El Valor $numero se encuentra en la posición $posicion del vector"; } else { echo " El Valor $numero se No encuentra en vector"; } ?>