Implement a function of binary search and count the steps executed by function on various inputs for best case and worst case. Also write complexity in each case and draw a comparative chart.


#include<stdio.h>
#include<conio.h>
#define size 10

unsigned long count=0;
void binary_search(int a[],int no)
{
      int low=0,high=size-1,middle;
      count++;
      while(low<=high)
      {
                  count++;
                  middle =  (low+high)/2;
                  count++;
                  if(a[middle]>no)
                  {
                              count++;
                              high=middle-1;
                  }
                  else if(a[middle]<no)
                  {
                              count++;
                              count++;
                              low=middle+1;
                  }
                  else
                  {
                              count++;
                              count++;
                              return;
                  }
      }
      count++;
      count++;
      return;
}
void main()
{
      int a[size],i,no,index;
      clrscr();
      for(i=0;i<size;i++)
      {
                  a[i]=i+1;
      }
      printf("Enter which element you want to find : ");
      scanf("%d",&no);
      binary_search(a,no);
      printf("Count= %lu",count);
      getch();
}

Comments

Popular posts from this blog

Write user defined functions for the following sorting methods and compare their performance by time measurement with random data and Sorted data.

Implement functions to print nth Fibonacci number using iteration and recursive method.

Implement program for randomized version of quick sort and compare its performance with normal version of quick sort using steps count on various number of inputs.