Binary Search

 
Source Code in C

   1:  Binary Search
   2:  #include <stdio.h>
   3:  #include <stdlib.h>
   4:  void dyadiki_anazitisi_2(int pinakas[],int arxi,int telos,int arithmos,int *plithos_sygriseon,int *thesi_pinaka,int *vrethike);
   5:  int main()
   6:  {
   7:   int max;
   8:   int arxi;
   9:   int telos;
  10:   int k;
  11:   int i;
  12:   int *x;
  13:   int plithos;
  14:   int thesi;
  15:   int vrethike;
  16:   printf(“dose to megethos tou pinaka:”);
  17:   scanf(“%d”,&max);
  18:   x=(int*)malloc(max*sizeof(int));
  19:   printf(“dose ta stoixeia tou taksinomimenou pinaka:\n”);
  20:   i=0;
  21:   while(i<max)
  22:   {
  23:    printf(“\nx[%d]=”,i);
  24:    scanf(“%d”,&x[i]);
  25:    i++;
  26:   }
  27:   printf(“dose enan arithmo:”);
  28:   scanf(“%d”,&k);
  29:   plithos=0;
  30:   thesi=0;
  31:   telos=max-1;
  32:   dyadiki_anazitisi_2(x,arxi,telos,k,&plithos,&thesi,&vrethike);
  33:   if(vrethike!=0)
  34:     {
  35:       printf(“o arithmos yparxei ston pinaka”);
  36:       printf(“\no arithmos yparxei stin thesi %d”,thesi);
  37:       printf(“\nto plithos sygriseon pou eginan einai:%d”,plithos);
  38:     }
  39:   if(vrethike==0)
  40:     {
  41:      printf(“o arithmos den brethike”);
  42:      printf(“\nto plithos sygriseon pou eginan einai:%d”,plithos);
  43:     }
  44:  return 0;
  45:  }
  46:   
  47:  /*Synartisi anadromikis dyadikis anazitisis*/
  48:   
  49:  void dyadiki_anazitisi_2(int pinakas[],int arxi,int telos,int arithmos,int *plithos_sygriseon,int *thesi_pinaka,int *vrethike)
  50:  {
  51:   int mesaio;
  52:   *vrethike=0;
  53:   
  54:   if((arxi<=telos) && (*vrethike==0))
  55:   { 
  56:     mesaio=(arxi+telos)/2;
  57:     (*plithos_sygriseon)++;
  58:     if(arithmos==pinakas[mesaio])
  59:     {   
  60:       *vrethike=1; /*Brethike to stoixeio*/
  61:       *thesi_pinaka=mesaio;
  62:     }
  63:     else  /*Den brethike*/
  64:       if(arithmos<pinakas[mesaio])
  65:       {
  66:        dyadiki_anazitisi_2(pinakas,arxi,mesaio-1,arithmos,plithos_sygriseon,thesi_pinaka,vrethike);
  67:       }
  68:       else  /*arithmos>=pinakas[stoixeio]*/
  69:       {
  70:        dyadiki_anazitisi_2(pinakas,mesaio+1,telos,arithmos,plithos_sygriseon,thesi_pinaka,vrethike);
  71:       }
  72:   }
  73:   
  74:  }
Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Leave a comment

Name: (Required)

eMail: (Required)

Website:

Comment: