Write a non-recursive function to implement binary search algorithm in C
#include<stdio.h>
#include<stdlib.h>
int binsearch(int arr[], int l,int h,int key)
{
int m;
m=(l+h)/2;
if(l>h)
return -1;
if(arr[m]==key)
return m+1;
else if(arr[m]>key)
return binsearch(arr,l,m-1,key);
else
return binsearch(arr,m+1,h,key);
}
int main()
{
int size,key,*arr,p,i;
printf("ENTER THE ARRAY SIZE = ");
scanf("%d",&size);
arr=(int*)malloc(size*4);
for(i=0;i<size;i++)
{
printf("ENTER THE %d ELEMENT OF THE ARRAY = ",i+1);
scanf("%d",&arr[i]);
}
printf("\n ENTER THE ELEMENT YOU WANTS TO SEARCH = ");
scanf("%d",&key);
p=binsearch(arr,0,size-1,key);
if(p>=0)
printf("\nELEMENT FOUND ON LOCATION %d",p);
else if(p==-1)
printf("ELEMENT DOES NOT FOUND");
return 0;
}
Post a Comment
0 Comments