#include<stdio.h>
int bseek(int key) {
int array[10] = {1,2,3,4,5,6,7,8,9,10};
int low = 0;
int high = (sizeof(array) / 4) - 1;
int mid = 0;
int ret = -1;
while(low <= high) {
mid = (low + high) / 2;
if (key == array[mid]) {
ret = mid;
break;
} else if (key < array[mid]) {
high = mid - 1;
} else if (key > array[mid]) {
low = mid + 1;
}
}
return ret;
}
void main(int argc, char* argv[])
{
printf("key[0]:%d\n", bseek(0));
printf("key[1]:%d\n", bseek(1));
printf("key[2]:%d\n", bseek(2));
printf("key[3]:%d\n", bseek(3));
printf("key[4]:%d\n", bseek(4));
printf("key[5]:%d\n", bseek(5));
printf("key[6]:%d\n", bseek(6));
printf("key[7]:%d\n", bseek(7));
printf("key[8]:%d\n", bseek(8));
printf("key[9]:%d\n", bseek(9));
printf("key[10]:%d\n", bseek(10));
printf("key[11]:%d\n", bseek(11));
}
list = [1,2,3,4,5,6,7,8,9,10]
low = 0
high = len(list) - 1
idx = 0
def bseek(key):
global low
global high
global idx
while(low <= high):
mid = (low + high) / 2
if (key == list[mid]):
idx = mid
break
elif(key < list[mid]):
high = mid - 1
elif(key > list[mid]):
low = mid + 1
bseek(6)
print idx