#include <stdio.h>
int main()
{
int T[5] = {2, 7, 12, 43, 60};
int low = 0, high = 4;
int mid;
int key = 43;
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+CgppbnQgbWFpbigpCnsKICAgIGludCBUWzVdID0gezIsIDcsIDEyLCA0MywgNjB9OwogICAgaW50IGxvdyA9IDAsIGhpZ2ggPSA0OwogICAgaW50IG1pZDsKICAgIGludCBrZXkgPSA0MzsKICAgIGludCBsb2NhdGlvbiA9IC0xOwoKICAgIHByaW50Zigi6L6T5YWl55qENeS4quaVsOWtl+S4uu+8mlxuIik7CgogICAgZm9yKGludCBpID0gMDsgaSA8IDU7IGkrKykKICAgIHsKICAgICAgICBwcmludGYoIiVkICIsIFRbaV0pOwogICAgfQoKICAgIHByaW50ZigiXG7mn6Xmib7lhbPplK7lrZfvvJolZFxuIiwga2V5KTsKCiAgICB3aGlsZShsb3cgPD0gaGlnaCkKICAgIHsKICAgICAgICBtaWQgPSAobG93ICsgaGlnaCkgLyAyOwoKICAgICAgICBpZihUW21pZF0gPT0ga2V5KQogICAgICAgIHsKICAgICAgICAgICAgbG9jYXRpb24gPSBtaWQgKyAxOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihUW21pZF0gPiBrZXkpCiAgICAgICAgewogICAgICAgICAgICBoaWdoID0gbWlkIC0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgbG93ID0gbWlkICsgMTsKICAgICAgICB9CiAgICB9CgogICAgaWYobG9jYXRpb24gIT0gLTEpCiAgICAgICAgcHJpbnRmKCLlhbPplK7lrZfnmoTkvY3nva7mmK/vvJolZFxuIiwgbG9jYXRpb24pOwogICAgZWxzZQogICAgICAgIHByaW50Zigi5p+l5om+5aSx6LSl77yBXG4iKTsKCiAgICByZXR1cm4gMDsKfQ==