Pesquisa Binária

Publicado por Enzo de Brito Ferber 31/05/2008

[ Hits: 10.705 ]

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

Fibonacci por meio de uma função

Determinando resultado de uma partida futebol (iniciante)

Salario bruto e liquido de um funcionario

Agenda utilizando árvores

MDC utilizando funções


  

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