int recursiveBinarySearch(int* space, int key, int low, int high)
{
  int mid = (low + high) / 2;
  
  if(low > high)
    return -1;

  if(space[mid] > key)
    return recursiveBinarySearch(space, key, low, mid - 1);
  else if(space[mid] < key)
    return recursiveBinarySearch(space, key, mid + 1, high);
  else //space[mid] == key
    return mid;
}

int iterativeBinarySearch(int* space, int key)
{
  int low = 0;
  int high = SIZE - 1;
  int mid;

  while (low <= high) 
    {
      mid = (low + high) / 2;
      if (space[mid] > key)
	high = mid - 1;
      else if (space[mid] < key)
	low = mid + 1;
      else //space[mid] == key
	return mid;
    }
  return -1;
}