TITLE:-Binary Search (Recursive)
PROBLEM:-
Given an integer sorted array (sorted in increasing order) and an element x, find the x in given array using binary search. Return the index of x.
Return -1 if x is not present in the given array.
Note : If given array size is even, take first mid.
Input format :
Line 1 : Array size
Line 2 : Array elements (separated by space)
Line 3 : x (element to be searched)
Sample Input :
6
2 3 4 5 6 8
5
Sample Output:
3
SOLUTION:-
#include <iostream>
using namespace std;
// input - input array
// size - length of input array
// element - value to be searched
int bsearch(int first,int last,int input[],int element)
{
int mid=(first+last)/2;
if(first==mid||last==mid)
return -1;
if(input[mid]==element)
return mid;
else if(input[first]==element)
return first;
else if(input[last]==element)
return last;
else if(input[mid]<element)
{
first=mid+1;
bsearch(first,last,input,element);
}
else{
last=mid-1;
bsearch(first,last,input,element);
}
}
int binarySearch(int input[], int size, int element) {
// Write your code here
int first=0;
int last=size-1;
return bsearch(first,last,input,element);
}
int main() {
int input[100000],length,element, ans;
cin >> length;
for(int i =0;i<length;i++)
{
cin >> input[i];;
}
cin>>element;
ans = binarySearch(input, length, element);
cout<< ans << endl;
}
This is dummy text. It is not meant to be read. Accordingly, it is difficult to figure out when to end it. But then, this is dummy text. It is not meant to be read. Period.
If you have any doubts then please let me know... ConversionConversion EmoticonEmoticon