AMCAT Automata Fix Sample Question-1

Program 1

BINARY SEARCH

Given function/method Search performs Binary Search and takes an vector of integers nums which is sorted in ascending order, and an integer target as input .The function/method Search searches target in nums. If target exists, then return its index. Otherwise, return -1.
The function/method Search is giving Time Limit Exceeded error. Your task is to fix the code so that it passes all the test cases.

int search (vector < int >&nums, int target)
{

  int start = 0;
  int end = nums.size () - 1;
  while (start <= end)
    {
      int mid = (end + start) / 2;
      if (target == nums[mid])
	return mid;

      else if (target <= nums[mid])
	end = mid + 1;

      else
	start = mid - 1;

    }
  return -1;

}
int search (vector < int >&nums, int target)
{

  int start = 0;
  int end = nums.size () - 1;
  while (start <= end)
    {
      int mid = (end + start) / 2;
      if (target == nums[mid])
	return mid;

      else if (target <= nums[mid])
	end = mid - 1;

      else
	start = mid + 1;

    }
  return -1;

}