int BSearchRecursion(int data[], int x, int low, int high)
{
if (low > high)
{
return -1;
}
int mid = (low+high)/2;
if (x == data[mid])
{
return mid;
}
if (x < data[mid])
{
return BSearch(data, x, low, mid-1);
}
if (x > data[mid])
{
return BSearch(data, x, mid+1, high);
}
}
int BSearchNotRecursion(int data[], int x, int len)
{
int low = 0;
int high = len;
int mid = 0;
while(low <= high)
{
mid = (low+high)/2;
if (x == data[mid])
{
return mid;
}
else if (x < data[mid])
{
high = mid + 1;
}
else
{
low = mid - 1;
}
}
return -1;
}