Busqueda binaria

BusquedaBinaria.html
//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;
}

No hay comentarios:

Publicar un comentario