binary search
#include<stdio.h>
int binarysearch(int arr[],int target,int mid,int size,int *pass)
{
int l=0;
int h=size-1;
while(l<=h)
{
int mid=(l+h)/2;
if(arr[mid]==target)
{
return 1;
}
else if(arr[mid]<target)
{
l=mid+1;
*pass=(*pass)+1;
}
else
{
h=mid-1;
*pass=(*pass)+1;
}
}
return -1;
}
int main()
{
int mid;
int pass=1;
int arr[]={10,20,30,40,50,60,70};
int size=sizeof(arr)/sizeof(arr[0]);
int target;
printf("enter the number to find\n");
scanf("%d",&target);
int ans=binarysearch(arr,target,mid,size,&pass);
if(ans==-1)
{
printf("data not found");
}
else
{
printf("\n data found at %d pass",pass);
}
}
Comments
Post a Comment