Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONCEPTO1.- Es un metodo que permite buscar un valor en una matriz que se esta ordenando
ascendentemente utilizando el algoritmo de busqueda binaria. Es un algoritmo muy eficiente ya
que requiere de poco tiempo para realizar una busqueda CONCEPTO2.- La búsqueda binaria
consiste en dividir el array por su elemento medio en dos subarrays más pequeños, y comparar
el elemento con el del centro. Si coinciden, la búsqueda se termina. Si el elemento es menor,
debe estar (si está) en el primer subarray, y si es mayor está en el segundo.
CARACTERISTICAS.- Uno de los algoritmos de búsqueda más eficiente que existe en la estructura
de datos es la búsqueda binaria, las características para poder implementar este algoritmo son
las siguientes:
Una vez que se cuenten son las características descritas, se divide el vector para poder conocer
la posición central y se verifica si es el dato que se esta buscando (lineas 9-12), si es el dato que
se busca regresa la posición (índice del vector), en caso de que no sea el dato que buscamos se
verifica si es mayor o menor que la posición central y se vuelve a redefinir la posición final o
inicial según cumpla la condición (lineas 14-18).
Por ejemplo, para buscar el elemento 3 en el array {1,2,3,4,5,6,7,8,9} se realizarían los siguientes
pasos:
Este método permite buscar un valor en una matriz que se esta ordenando ascendentemente
utilizando el algoritmo de búsqueda binaria. Se trata de un algoritmo muy eficiente en cuanto el
tiempo requerido para realizar una búsqueda es muy pequeño. La sintaxis expresada de forma
genérica para realizar este método es la siguiente:
La búsqueda binaria sólo se puede implementar si el arreglo está ordenado. La idea consiste en
ir dividiendo el arreglo en mitades. Por ejemplo supongamos que tenemos este vector:
Se determina un índice central, Icentro = (Iarriba + Iabajo)/2, en este caso quedaría Icentro = 5.
Si son distintos, evaluamos si vector[Icentro] es mayor o menor que la clave, como el arreglo
está ordenado al hacer esto ya podemos descartar una mitad del arreglo asegurándonos que en
esa mitad no está la clave que buscamos. En nuestro caso vector[Icentro] = 5 < 6, entonces la
parte del arreglo vector[0…5] ya puede descartarse.
Reasignamos Iarriba o Iabajo para obtener la nueva parte del arreglo en donde queremos buscar.
Iarriba, queda igual ya que sigue siendo el tope. Iabajo lo tenemos que subir hasta 6, entonces
quedaría Iarriba = 10, Iabajo = 6. Y volvemos al paso 2.
PROGRAMA.-
//Busqueda binaria
//en un arreglo.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
arreglo
int main()
ordenarArreglo(arreglo,tamano);
mostrarArreglo(arreglo,tamano);
cout << "Indique un valor a buscar y se le devolvera el indice: " << endl;
return 0;
}//fin de main
cout << "arreglo[" << i << "]=" << arreglo[i] << endl;
}
int busquedaBinaria(const int arreglo[], int tamano, int clave)
int Iabajo = 0;
int Icentro;
if (arreglo[Icentro] == clave)
return Icentro;
else
Iarriba=Icentro-1;
else
Iabajo=Icentro+1;
return -1;
intercambiar(arreglo[j],arreglo[j+1]);
}
void intercambiar(int &a, int &b)
int tmp = b;
b = a;
a = tmp;