Saturday, August 20, 2011

Binary search using Recursion

//Binary search using Recursion
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
main()
{
      int i,*a,n,p;
      void create(int **a,int n);
      void display(int *a,int n);
      int search(int a[],int item,int beg,int end);
      a=NULL;
      printf("Enter the number of elements you want in your array : " );
      scanf("%d",&n);
      create(&a,n);
   
       printf("Enter the number to be search : " );
      scanf("%d",&p);
      i=search(a,p,0,n);
      if(i==-1000)
      printf("\nitem no found");
      else
      printf("\n item is found at position %d",i+1);
     getch();
     display(a,n);
      return 0;
}
void create(int **a,int n)
{
     int i;
     int *s;
     s=(int *)malloc(n*sizeof(int));
     printf("\n Enter the value of array elements " );
     for(i=0;i<n;i++)
     {
                  scanf("%d",&s[i]);
     }
     *a=s;
}
void display(int *a,int n)
{ int i;
      printf("\n array elements " );
     for(i=0;i<n;i++)
     {
                  printf("%d ",a[i]);
     }
}  
int search(int a[],int item,int beg,int end)
{
    int mid=(beg+end)/2;
    if (beg>end)
    return -1000;
    if(a[mid]==item)
     return mid;
    if(a[mid]>item)
     return search(a,item,beg,mid-1);
    else
    return search(a,item,mid+1,end);
}

Previous Next Home
0 Comments
Comments

Leave a Comment

:)) ;)) ;;) :D ;) :p :(( :) :( :X =(( :-o :-/ :-* :| 8-} :)] ~x( :-t b-( :-L x( =))

Twitter Delicious Facebook Favorites More