< Back to forum

### implementation of binary search

my code for binary search is not working....where i am wrong....here my code goes :

#include<bits/stdc++.h>
using namespace std;
int BS(int[],int,int,int);
int main()
{
int n;
scanf("%d",&n);
int a[n],i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
int t;
scanf("%d",&t);
while(t--)
{
int numberToSearch;
scanf("%d",&numberToSearch);
int r;
r = BS(a,0,n-1,numberToSearch);
printf("%d\n",r);
}
return 0;
}
int BS(int x[],int f,int l,int test)
{
int mid;
while(f<=l)
{
mid=(l-f)/2+f;
if(x[mid]==test)
{
return (mid);
}
else if(x[mid]<test)
{
l=mid+1;
}
else
{
f=mid-1;
}
}
return (-1);
}

Asked by: Abhishek_Chaudhary on April 7, 2019, 6:34 p.m. Last updated on April 7, 2019, 6:34 p.m.

Preview

##### Enter your comment details below:

Preview

You should better check the values you are assigning to the lowerbound and upperbound of your binary search.

Gyanesha_Prajjwal last updated on April 7, 2019, 6:34 p.m.

##### Instruction to write good question
1. 1. Write a title that summarizes the specific problem
2. 2. Pretend you're talking to a busy colleague
3. 3. Spelling, grammar and punctuation are important!