Pular para o conteúdo

Busca Binária

Este script faz uma busca binária em um vetor (array), está simples e fácil de ser entendido, lembramos que o vetor deve estar ordenado para que seja possível fazer uma busca binária, para isso vc pode usar meu script de "ordenacao por selecao", qualquer bug encontrado por favor me avise no felipejfs@bol.com.br pois uso este script aqui em um site. Espero que lhe seja util este script. falou.
joao felipe felipe
Hits: 8.098 Categoria: Perl Subcategoria: Metodologias
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Este script faz uma busca binária em um vetor (array), está simples e fácil de ser entendido, lembramos que o vetor deve estar ordenado para que seja possível fazer uma busca binária, para isso vc pode usar meu script de "ordenacao por selecao", qualquer bug encontrado por favor me avise no felipejfs@bol.com.br pois uso este script aqui em um site. Espero que lhe seja util este script. falou.
Download buscabin.pl Enviar nova versão

Esconder código-fonte

#!/bin/perl
#para uma busca binaria é necessario que o vetor esteja ordenado!!!!
@vetor=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20);
$x=3; #$x será o elemento à procurar.
$inicio=0;
$fim=@vetor; # $fim recebe o tamanho de @vetor.
$meio=int(($inicio+$fim)/2);
print "Procurando $x em ". "@vetor". "\n";
while (($x != @vetor[$meio]) && ($inicio!=$fim) && ($inicio<$fim))
           {
             if ($x > @vetor[$meio]) {$inicio=$meio+1}
             else {$fim=$meio-1}
             $meio=int(($inicio+$fim)/2);
           }
if ($x == @vetor[$meio]){print "$x encontrado em @". "vetor[". $meio. "]\n";}
else {print "$x nao encontrado!! \n";}

Conexão com Banco de Dados Postgres

Validador de cartão de débido e crédito em Perl

GenHASH - Gerador de hashes SHA1, MD5 e Base64 em Perl

Streaming Kiss FM (SP 102,1) Player em perl com interface grafica (Tk)

Orientação a Objetos - Criando e usando uma classe em Perl

#1 Comentário enviado por danltmz em 13/07/2010 - 16:21h
Apenas uma observação..
ao invés de:

@vetor=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20);

você poderia ter feito:

@vetor = (1 .. 20);

E te recomendo também usar o pragma strict e o my pra definir o escopo das variáveis.

Contribuir com comentário

Entre na sua conta para comentar.