Binary search

Using Recursion

int binarySearch(int arr[], int l, int r, int x)
{
if (l > r) {return -1;}
int mid = Math.floor((l + r) / 2);
if (arr[mid] > x) return binarySearch(arr, l, mid-1, x);
if (arr[mid] < x) return binarySearch(arr, mid+1, r, x);
return mid;
}

Using Iterative

int BinarySearch(int A[], int l, int r, int key)
{
    while( r - l > 1 )
    {
       int mid = Math.floor((l + r) / 2);
if( A[mid] <= key )
            l = mid;
       else
            r = mid;
    }
   if( A[l] == key )
        return l;
    else
        return -1;
}

Leave a comment