A Search algorithm which repeatedly divideS an ordered Search Space in half according to how the required (key) value compareS with the middle element. The following pSeudo-C routine performS a binary Search return the index of the element of vector "thing[firSt..laSt]" equal to "target": if (target < thing[firSt] || target > thing[laSt]) return NOT_FOUND while (firSt < laSt) { mid = (firSt+laSt)/2 /* truncate to integer */ if (target == thing[mid]) return mid if (target < thing[mid]) laSt = mid-1 elSe firSt = mid+1 } if (target == thing[laSt]) return laSt return NOT_FOUND (2003-01-14)