## Best C Programming code for Binary Search using pointer(February,2021)

**Introduction**

This blog is completely dedicated for implementing Binary Search technique. When we have a list of elements and if we like to search any element, we will use this technique.

**Pre-requisite**

Before starting Binary Search , the list of elements must be sorted. Because Binary search logic can only work on sorted list. Before entering into Binary search logic, you can use any sorting algorithm. Here I have followed Bubble sort.

**Explanation**

In this searching technique, first of all the complete element list is divided into halves and from those halves, depending upon the condition program will select proper half. I have used pointer concept for both sorting and searching as well. The code is very easy to understand. In this code I have used separate function for Bubble Sort.

I hope that this code will help you to understand the Binary Search technique very easily. If anyone have any doubt please feel free to contact me through email id : creativeresource2020@gmail.com.

You also can put your valuable comment in the comment section.

You also can visit my Youtube channel :

https://www.youtube.com/channel/UC51-9SUu0-CaAYwT4XLNtSw

```
#include<stdio.h>
int binsear(int *,int,int);
int bubble(int *,int);
int main()
{
int ar[50],m,i,n,p;
printf("\nEnter the number of elements : ");
scanf("%d",&m);
printf("\nEnter the values : ");
for(i=0;i<m;i++)
scanf("%d",&ar[i]);
printf("\nEnter the value you wanna search : ");
scanf("%d",&n);
bubble(ar,m);
if(binsear(ar,m,n))//1/non zero = true 0 = false
printf("\nFound");
else
printf("\nNot Found");
}
int binsear(int *ptr,int p,int q)
{
int lb=0,ub=p-1,mid;
while(lb<=ub)
{
mid=(lb+ub)/2;
if(*(ptr+mid)== q)
return 1;
else if(*(ptr+mid)>q)
ub=mid-1;
else
lb=mid+1;
}
return 0;
}
int bubble(int *ptr,int m)
{
int i,j,temp;
for(i=0;i<m;i++)
{
for(j=0;j<m-i-1;j++)
{
if(*(ptr+j)>*(ptr+j+1))//if(ar[j]>ar[j+1])
{
temp=*(ptr+j); //temp=ar[j];
*(ptr+j)=*(ptr+j+1); //ar[j]=ar[j+1]
*(ptr+j+1)=temp; //ar[j+1]=temp
}
}
}
}
```