// 递归形式
public static int BinartSearch(int[] array, int low, int high, int target) { if (low <= high) { int mid = (low + high) / 2; if (array[mid] == target) { return mid; } else if (array[mid] < target) return BinartSearch(array, mid + 1, high, target); else return BinartSearch(array, low, mid - 1, target); } else { return -1; } }
// 循环形式 public static int BinartSearch(int[] array, int low, int high, int target) { int mid; while (low <= high) { mid = (low + high) / 2; if (array[mid] == target) return mid; else if (array[mid] < target) low = mid + 1; else high = mid - 1; } return -1; }