BUSQUEDA BINARIA
Enviado por MiguelDiaz1 • 1 de Mayo de 2018 • Ensayo • 295 Palabras (2 Páginas) • 166 Visitas
Búsqueda Binaria:
Condiciones necesarias:
Elementos ordenados (MO burbuja quicksort etc)
Tamaño de la lista o vector
Elemento a buscar
Funcionamiento:
Encontrar punto medio (tomando como limite inferior el 0 o 1 y el limite superior el tamaño de la lista, los sumamos y los dividimos entre 2)
Comparar elemento a buscar con el punto medio
Si el elemento a buscar es mayor que el punto medio, buscar en mitad superior
Si el elmento a buscar es menor al punto medio, buscar en mitad inferior
Si son igual hemos terminado
Se realiza el mismo proceso pero con los intervalos cambiados hasta llegar a un intervalo indivisible, si este es distinto del elemento de búsqueda se dice q el elemento no se encuentra en la lista.
4, 8, 9, 12, 21, 33, 44, 56, 120, 200 M=33 LI=0 LS=10 (LI+S)/2=5 buscar=120 B>M
Codigo en Lenguaje C:
#include
int binario (int[], int, int, int);
int main (void)
{
int A[]= {1,4,7,9,35,67,101,459,600,701};
int B=0, R=0, Arriba=0, Abajo=0,Medio=0;
printf(“ introduzca el elemento a buscar\n”);
scanf(“%d”,&B);
Arriba=10;
R=(int)binario(A,Abajo,Arriba,B);
if (R== -1)
printf(“El elemento no se encuentra en el arreglo\n”);
else
printf(“El elemento se encuentra en la posición %d\n”, R);
}
int binario(int A[], int Ab, int Ar, int C)
{
While (Ab<=Ar)
{
int M=(int)(Ab+Ar)/2;
return binario(A, Ab, M-1, C);
else if (C>A[M])
return binario (A, M+1, Ar, C);
else if (C==[M])
return M;
}
return -1;
}
“Haz tu pasión tu profesión”
...