#include <stdio.h>
int main()
{
int T[5] = {2, 7, 12, 43, 60};
int low = 0, high = 4;
int mid;
int key = 7;
int location = -1;
for(int i = 0; i < 5; i++)
{
}
while(low <= high)
{
mid = (low + high) / 2;
if(T[mid] == key)
{
location = mid + 1;
break;
}
else if(T[mid] > key)
{
high = mid - 1;
}
else
{
low = mid + 1;
}
}
if(location != -1)
printf("关键字的位置是:%d\n", location
); else
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpCnsKICAgIGludCBUWzVdID0gezIsIDcsIDEyLCA0MywgNjB9OwogICAgaW50IGxvdyA9IDAsIGhpZ2ggPSA0OwogICAgaW50IG1pZDsKICAgIGludCBrZXkgPSA3OwogICAgaW50IGxvY2F0aW9uID0gLTE7CgogICAgcHJpbnRmKCLovpPlhaXnmoQ15Liq5pWw5a2X5Li677yaXG4iKTsKCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgNTsgaSsrKQogICAgewogICAgICAgIHByaW50ZigiJWQgIiwgVFtpXSk7CiAgICB9CgogICAgcHJpbnRmKCJcbuafpeaJvuWFs+mUruWtl++8miVkXG4iLCBrZXkpOwoKICAgIHdoaWxlKGxvdyA8PSBoaWdoKQogICAgewogICAgICAgIG1pZCA9IChsb3cgKyBoaWdoKSAvIDI7CgogICAgICAgIGlmKFRbbWlkXSA9PSBrZXkpCiAgICAgICAgewogICAgICAgICAgICBsb2NhdGlvbiA9IG1pZCArIDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKFRbbWlkXSA+IGtleSkKICAgICAgICB7CiAgICAgICAgICAgIGhpZ2ggPSBtaWQgLSAxOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBsb3cgPSBtaWQgKyAxOwogICAgICAgIH0KICAgIH0KCiAgICBpZihsb2NhdGlvbiAhPSAtMSkKICAgICAgICBwcmludGYoIuWFs+mUruWtl+eahOS9jee9ruaYr++8miVkXG4iLCBsb2NhdGlvbik7CiAgICBlbHNlCiAgICAgICAgcHJpbnRmKCLmn6Xmib7lpLHotKXvvIFcbiIpOwoKICAgIHJldHVybiAwOwp9Cg==