SlideShare una empresa de Scribd logo
1 de 8
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

Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoLutzo Guzmán
 
Método Burbuja y Búsqueda binaria (explicación)
Método Burbuja y Búsqueda binaria (explicación)Método Burbuja y Búsqueda binaria (explicación)
Método Burbuja y Búsqueda binaria (explicación)Jorge Samaniego
 
Documento de Busqueda Binaria
Documento de Busqueda BinariaDocumento de Busqueda Binaria
Documento de Busqueda BinariaSanTy BizZle
 
Exposicion Busqueda
Exposicion BusquedaExposicion Busqueda
Exposicion BusquedaAngie Suarez
 
Heap sort (Monticulos)
Heap sort (Monticulos)Heap sort (Monticulos)
Heap sort (Monticulos)leidy2220
 
Presentación1
Presentación1Presentación1
Presentación1cipq
 
Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaJose Rivera
 
Metodos Busqueda Interna
Metodos Busqueda InternaMetodos Busqueda Interna
Metodos Busqueda Internasawmuk
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3eliezerbs
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externaEdwin Narváez
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busquedaJohnfornerod
 

La actualidad más candente (20)

Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Quicksort
QuicksortQuicksort
Quicksort
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Método Burbuja y Búsqueda binaria (explicación)
Método Burbuja y Búsqueda binaria (explicación)Método Burbuja y Búsqueda binaria (explicación)
Método Burbuja y Búsqueda binaria (explicación)
 
Documento de Busqueda Binaria
Documento de Busqueda BinariaDocumento de Busqueda Binaria
Documento de Busqueda Binaria
 
Exposicion Busqueda
Exposicion BusquedaExposicion Busqueda
Exposicion Busqueda
 
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
 
Shell exposición
Shell exposiciónShell exposición
Shell exposición
 
Heap sort (Monticulos)
Heap sort (Monticulos)Heap sort (Monticulos)
Heap sort (Monticulos)
 
Presentación1
Presentación1Presentación1
Presentación1
 
Informe Análisis Búsqueda Binaria
Informe Análisis Búsqueda BinariaInforme Análisis Búsqueda Binaria
Informe Análisis Búsqueda Binaria
 
Metodos Busqueda Interna
Metodos Busqueda InternaMetodos Busqueda Interna
Metodos Busqueda Interna
 
Búsqueda Binaria
Búsqueda BinariaBúsqueda Binaria
Búsqueda Binaria
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externa
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Algoritmos de busqueda
Algoritmos de busquedaAlgoritmos de busqueda
Algoritmos de busqueda
 

Similar a Expo busqueda binaria

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
 
Presentacion programacion
Presentacion programacionPresentacion programacion
Presentacion programacion
 
Programacion
ProgramacionProgramacion
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"; } ?>