//Busqueda Binaria o Dicotomica
#include <stdio.h>
int main() {
int a[5] = {1,2,3,4,5};
int inf,sup,mitad,dato;
char band = 'F';
dato = 5;
//Busqueda Binaria
inf = 0;
sup = 5;
while (inf<=sup){ // mientras inferior sea menor a superior, se calcula la mitad del array
mitad = (inf+sup)/2;
if (a[mitad] == dato){ // se busca el dato, si se encuentra, la bandera cambia a verdadero
band = 'V';
break; // termina el bucle
}
if (a[mitad] > dato){ // si es mayor al dato buscado, superior se iguala a mitad
sup = mitad;
mitad = (inf+sup)/2; // mitad cambia de valor
}
if (a[mitad] < dato){ // si mitad es menor al dato, inferior se iguala a mitad
inf = mitad;
mitad = (inf+sup)/2;
}
}
if (band == 'F'){
printf("El numero no existe\n");
}else if (band == 'V'){
printf("El numero existe, en la posicion: %i\n",mitad);
}
return 0;
}
Busqueda binaria
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario