Busca binária X busca seqüencial


bool Busca_Sequencial(int * S, int tam, int k)

   int i = 0; 
   bool achou = false; 

   while( i < tam && !achou) 
   { 
      if(S[i]==k) 
      { 
         achou = true; 
      } 
      ++i; 
   } 
   return(achou); 

bool Busca_Binaria(int * S, int inicio, int fim, int k)

   int meio; 

   if( inicio > fim ) return(false); 
   else 
   { 
      meio = (fim-inicio)/2 + inicio; 

      if(S[meio] == k) return(true); 
      else 
      { 
         if(k > S[meio]) return(Busca_Binaria(S,meio+1,fim,k)); 
        else return(Busca_Binaria(S,inicio,meio-1,k)); 
      } 
   } 

 

S = [ 2 4 7 9 20 30 35 50 58 66 68 70 72 73 74 80 82]

Busca Seqüencial (74) - Comparações com 2 , 4 , 7 , 9 , 20 , 30 , 35 , 50 , 58 , 66 , 68 , 70 , 72 , 73 , 74
Busca Binária (74) - Comparações com 58 (S[9]) ,  72 (S[13])  ,   74 (S[15).

Árvores Binárias