#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define TAM 100
void bus(int dato, int ini, int fin, int *CB);
void imprimeCB(int *CB){
int i;
for(i=0; i<TAM-1; i++){
printf("%d ",CB[i]);
}
}
int main(){
int CB[TAM];
int ini=0, fin=TAM-1, dato, i;
srand((unsigned int)time(NULL));
for(i=0; i<TAM; i++){
CB[i] = (int) (rand()%100);
}
imprimeCB(CB);
dato = (int) (rand()%100);
CB[i] = dato;
printf("\n\nDato a buscar: %d\n",dato);
bus(dato, ini, fin, CB);
system("pause");
return 0;
}
void bus(int dato, int ini, int fin, int *CB2){
int mitad;
mitad = (ini+fin)/2;
if(ini==fin){
printf("\nEl elemento no esta en el array\n");
}
else if
(dato==CB2[mitad]){
printf("\nPosicion %d\n",mitad);
}
else if
(dato<CB2[mitad]){
fin=mitad-1;
bus(dato, ini, fin, CB2);
}
else if
(dato > CB2[mitad]){
ini=mitad+1;
bus(dato,ini,fin,CB2);
}
else if
(dato==CB2[mitad]){
printf("Posicion %d\n",mitad);
}
else
printf("\nElemento no esta en el array\n");
}
Recursión: Búsqueda dicotómica recursiva
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario