package algorithm.recursion;
public class BinarySearch {
public static void main(String[] args) {
}
public static int loop(int[] arr, int t) {
int low = 0, high = arr.length - 1, middle = -1;
while(low <= high) {
middle = (low + high) / 2;
if(arr[middle] == t) {
return middle;
} else if(arr[middle] < t) {
low = middle + 1;
} else {
high = middle - 1;
}
}
return -1;
}
public static int recursion(int[] arr, int t) {
return recursion(arr, 0, arr.length - 1, t);
}
public static int recursion(int[] arr, int low, int high, int t) {
if(low > high) {
return -1;
}
int middle = (low + high) / 2;
if(arr[middle] == t) {
return middle;
} else if(arr[middle] < t) {
return recursion(arr, middle + 1, high, t);
} else {
return recursion(arr, low, middle - 1, t);
}
}
}