/* Returns the offset within |array[]| of an element equal to |key|, or |-1| if |key| is not in |array[]|. |array[]| must be an array of |n| |int|s sorted in ascending order. */ int binary_search (int array[], int n, int key) { int min = 0; int max = n - 1; while (max >= min) { int i = (min + max) / 2; if (key < array[i]) max = i - 1; else if (key > array[i]) min = i + 1; else return i; } return -1; }