Busca Binária

Publicado por joao felipe 18/02/2003

[ Hits: 7.651 ]

Homepage: www.motokando.com

Download buscabin.pl




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.

  



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";}

Scripts recomendados

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

Gerador de CPF válido em Perl

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

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

Ordenação por Seleção


  

Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts