Pesquisa Binária

Publicado por Enzo de Brito Ferber 31/05/2008

[ Hits: 10.582 ]

Homepage: http://www.maximasonorizacao.com.br

Download binsearch.c




Este programa ilustra o algoritmo de pesquisa binária, que é o algoritmo de pesquisa mais rápido para dados ordenados (crescente / decrescente).

Espero que ajude alguém algum dia ;)

  



Esconder código-fonte

// binsearch.c

#include <stdio.h>
#include <stdlib.h>

int bin_search (int *vet, int info, int size)
{
   int low=0, mid, high=(size - 1);

   while (low <= high)
   {
      mid = (low + high) / 2;
      if (vet[mid] == info) return mid;
      if (vet[mid]  > info) high = mid - 1;
      if (vet[mid]  < info) low  = mid + 1;
   }

   return (-1);
}

int main (int argc, char **argv)
{
   int info, i;
   int *vet;

   if (argc < 3)
   {
      printf("Uso: %s <tamanho_vetor> <info>\n", argv[0]);
      return 0;
   }

   // argv[1] >> tamanho do vetor
   // argv[2] >> informacao procurada no vetor
   
   vet  = (int*) malloc ( atoi(argv[1]) * sizeof(int));
   info = atoi(argv[2]);

   for (i = 0; i < atoi(argv[1]); i++) *(vet+i) = (i + 1);

   printf("Posicao de %d: %d\n", info, bin_search(vet, info, atoi(argv[1]) ));

   return 0;
}


Scripts recomendados

Números primos da seqüência Fibonacci

Eliminando elementos repetidos de uma sequência

Transforma a quantidade de dias digitados em anos, meses e dias

Converter graus Celsius em Fahrenheit e vice-versa

Passar uma string pra caixa alta.


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts