rendered paste bodypublic class BinarySearchTest {
// Predicted Output: 5
// Actual Output: unknown (gotta test it)
public static void main(String[] args) {
int[] nums = new int[10];
// Create an array of numbers from one to ten
for (int i=0;i<=10;i++) {
int[i] = i;
}
RecursiveBinarySearcher rbs = new RecursiveBinarySearcher();
IterativeBinarySearcher ibs = new IterativeBinarySearcher();
System.out.println(rbs.binarySort(nums, 0, 9, 6));
System.out.println(ibs.binarySort(nums, 0, 9, 6));
}
}
class RecursiveBinarySearcher {
public int binarySearch(int[] numbers, int low, int high, int target) {
int midNum = Math.round(low + (high - low) / 2);
if (numbers[midNum] == target) {
return midNum;
} else if (numbers[midNum] < target) {
return binarySearch(numbers, midNum + 1, numbers.length, target);
} else if ((hi - low) <= 0) {
// Not found
return -1;
} else {
return binarySearch(numbers, low, midNum - 1, target);
}
}
}
class IterativeBinarySearcher {
public binarySearch(int[] numbers, int low, int high, int target) {
while ((high - low) > 0) {
// search
int midNum = Math.round(low + (high - low) / 2);
if (numbers[midNum] == target) {
return midNum;
} else if (numbers[midNum] < target) {
low = midNum + 1;
} else if (numbers[midNum] > target) {
high = midNum - 1;
}
}
}
}
}
}