int binary_search(const unsigned *a, int n, unsigned value)
{const unsigned *it,*beg;int step;
beg=a;
while (n > 0) {
it = a;
step = n / 2;
it += step;
if (*it < value) {
a = ++it;
n -= step + 1;
}
else if(*it==value) {a=it;break;}
else
n = step;
}
return a-beg;
}