Busca Binária

Publicado por joao felipe 18/02/2003

[ Hits: 7.521 ]

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

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

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

Conexão com Banco de Dados Postgres

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

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


  

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