**Solution:**

// Search

**value**in

**array a**of length

**size**

int binarySearch( int* a, int value, int low, int high, int size)

{

while (low < high)

{

int mid = low + ((high - low) / 2); // Avoid overflow (low + high)

if (a[mid] < value)

low = mid + 1;

else

//can't be high = mid-1: as a[mid] >= value,

//so high can't be < mid as a[mid] can be = value

high = mid;

}

// high == low

if ((low < size) && (a[low] = = value))

return low; // found

else

return -1; // not found

}

## No comments:

## Post a Comment