1 public static int binarySearch(int[] list, int key) { 2 int low = 0; 3 int high = list.length - 1; 4 5 while (high >= low) { 6 int mid = (low + high) / 2; 7 if (key < list[mid]) 8 high = mid - 1; 9 else if (key == list[mid]) 11 return mid; 12 else 13 low = mid + 1; 14 } 15 16 return -low - 1; // Now high < low 17 }