// // main.c // T0_ej7 // // Created by Mari Paz Guerrero Lebrero on 12/1/15. // Copyright (c) 2015 Mari Paz Guerrero Lebrero. All rights reserved. // #include #include #define MAXI 100 void InicializaVector(int v[], int n); int BusquedaBinaria(int v[], int n, int num); int main() { int v[MAXI], n, i, num; printf("¿Cuantos elementos tiene el vector? (menor que %d)", MAXI); scanf("%d", &n); InicializaVector(v, n); printf("¿Que numero esta buscando?"); scanf("%d", &num); i = BusquedaBinaria(v, n, num); if(i == -1) printf("El numero %d no esta en el vector\n", num); else printf("El numero %d esta en la posicion %d\n", num, i); system("PAUSE"); return 0; } void InicializaVector(int v[], int n) { int i; for(i = 0; i < n; i++) { printf("\tIntroduzca elemento: "); scanf("%d", &v[i]); } } int BusquedaBinaria(int v[], int n, int num) { int ini = 0, fin = n - 1, i = -1, mitad, encontrado = 0; while(ini <= fin && encontrado == 0) { mitad = (fin + ini) / 2; printf("mitad = %d, v[%d] = %d\n", mitad, mitad, v[mitad]); if(v[mitad] == num) { i = mitad; encontrado = 1; } else { if(v[mitad] < num) { ini = mitad + 1; fin = n - 1; } else { ini = 0; fin = mitad - 1; } } } return i; }