Pesquisa Binária

Publicado por Enzo de Brito Ferber 31/05/2008

[ Hits: 10.529 ]

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

Função em C, retorna a data do sistema já formatada

Troco em cédulas

Estrutura de dados - cadeia

Resolução de uma fórmula de mátemática

Crescimento populacional brasileiro


  

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