Binary search

int BinarySearch(int list[], int size, int key)

{

int left, right, midpt;

left = 0;

right = size - 1;

while (left <= right)

{

  midpt = (int) ((left + right) / 2);

  if (key == list[midpt])

  {

    return midpt;

  }

    else if (key > list[midpt])

    left = midpt + 1;

  else

    right = midpt - 1;

}

return -1;

}