#include <iostream>
using namespace std;
int BusquedaBinaria(int [], int, int );
int main(void) {
int vector[] = { 2, 3, 4, 10, 40 };
int n = sizeof(vector) / sizeof(vector[0]);
int x = 50;
int resultado = BusquedaBinaria(vector, n, x);
if (resultado != -1)
cout << "El elemento se encuentra en la posición: " << resultado;
else
cout << "El elemento no se encuentra en el vector." << endl;
return 0;
}
int BusquedaBinaria(int vector[], int TL, int dato) {
int centro, izq=0, der=TL-1;
while(izq<=der){
centro= (der-izq)/2 +izq;
if(vector[centro]==dato)
return centro;
else
if(dato < vector[centro])
der=centro-1;
else
izq=centro+1;
}
return -1;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IEJ1c3F1ZWRhQmluYXJpYShpbnQgW10sIGludCwgaW50ICk7CgppbnQgbWFpbih2b2lkKSB7IAoJaW50IHZlY3RvcltdID0geyAyLCAzLCA0LCAxMCwgNDAgfTsgCglpbnQgbiA9IHNpemVvZih2ZWN0b3IpIC8gc2l6ZW9mKHZlY3RvclswXSk7IAoJCglpbnQgeCA9IDUwOyAKCWludCByZXN1bHRhZG8gPSBCdXNxdWVkYUJpbmFyaWEodmVjdG9yLCBuLCB4KTsgCgkKCWlmIChyZXN1bHRhZG8gIT0gLTEpCgkJY291dCA8PCAiRWwgZWxlbWVudG8gc2UgZW5jdWVudHJhIGVuIGxhIHBvc2ljacOzbjogIiA8PCByZXN1bHRhZG87CgllbHNlCgkJY291dCA8PCAiRWwgZWxlbWVudG8gbm8gc2UgZW5jdWVudHJhIGVuIGVsIHZlY3Rvci4iIDw8IGVuZGw7CgkJCglyZXR1cm4gMDsgCn0gCgppbnQgQnVzcXVlZGFCaW5hcmlhKGludCB2ZWN0b3JbXSwgaW50IFRMLCBpbnQgZGF0bykgewoJaW50IGNlbnRybywgaXpxPTAsIGRlcj1UTC0xOwoJCgl3aGlsZShpenE8PWRlcil7CgkJY2VudHJvPSAoZGVyLWl6cSkvMiAraXpxOwoJCWlmKHZlY3RvcltjZW50cm9dPT1kYXRvKSAgICAgICAKCQkJcmV0dXJuIGNlbnRybzsKCQllbHNlIAoJCQlpZihkYXRvIDwgdmVjdG9yW2NlbnRyb10pIAoJCQkJZGVyPWNlbnRyby0xOwoJCQllbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCQlpenE9Y2VudHJvKzE7Cgl9CglyZXR1cm4gLTE7Cn0=