Binary-search
Introduction
The data should be sorted
Code
public static void main(String[] args) {
int array[] = {0,1,3,5,6,8,10};
System.out.println(bisection(array, 0, array.length - 1, 6));
}
static int binarySearch(int arr[], int l, int r, int x) {
if (r >= l) {
int mid = l + (r - l) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binarySearch(arr, l, mid - 1, x);
return binarySearch(arr, mid + 1, r, x);
}
return -1;
}
static int bisection(int array[], int left, int right, int k){
int m = (left + right) / 2;
if(left > right){
return - 1;
}
if(array[m] == k){
return m;
}else{
if(array[m] < k){
return bisection(array, m + 1, right, k);
}else{
return bisection(array, left, m - 1, k);
}
}
}