[SP-pm] [OT] Algorítimos de ordenação - performance artística
Renato Santos
renato.cron at gmail.com
Thu May 19 09:17:03 PDT 2011
ta rodando
mas o resultado eu sei, será 60 elementos ordernados ^^
use Data::Dumper;
use List::Util qw(shuffle);
sub bogosort {
my @a = @_;
my @sorted = sort {$a <=> $b} @a;
print "Em ordem é @sorted, mas vale a pena conferir se você está com
sorte\n";
while("@a" ne "@sorted") {
@a = shuffle(@a);
}
return @a;
}
@b = (30..60, 0..30); # too complex order
print Dumper bogosort(@b);
renato at renato-desktop:/projetos/youdb/nestle/datamotion_ps$ time perl
/tmp/xxx.pl2
Em ordem é 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
25 26 27 28 29 30 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58 59 60, mas vale a pena conferir se você está
com sorte
2011/5/19 Wesley Seidel <wesley.seidel at gmail.com>
> Não precisa ser 100k não.
> Ponha apenas 60 elementos e dê-nos o resultado.
> :D
>
>
> 2011/5/19 Bruno Buss <bruno.buss at gmail.com>
>
>> Agora testa ai com 100k elementos :)
>>
>>
>> [ ]'s
>>
>> 2011/5/19 Renato Santos <renato.cron at gmail.com>
>>
>>> Me pareceu tão rapido...
>>> use Data::Dumper;
>>> use List::Util qw(shuffle);
>>>
>>> sub bogosort {
>>> my @a = @_;
>>> my @sorted = sort {$a <=> $b} @a;
>>> while("@a" ne "@sorted") {
>>> @a = shuffle(@a);
>>> }
>>> return @a;
>>> }
>>>
>>> @b = (4,56,8,5,2,5,6,4);
>>> renato at renato-desktop:/projetos/youdb/nestle/datamotion_ps$ time perl
>>> /tmp/xxx.pl2
>>> $VAR1 = 2;
>>> $VAR2 = 4;
>>> $VAR3 = 4;
>>> $VAR4 = 5;
>>> $VAR5 = 5;
>>> $VAR6 = 6;
>>> $VAR7 = 8;
>>> $VAR8 = 56;
>>>
>>> real 0m0.058s
>>> user 0m0.052s
>>> sys 0m0.000s
>>>
>>> print Dumper bogosort(@b);
>>>
>>> 2011/5/19 Nelson Ferraz <nferraz at gmail.com>
>>>
>>>> 2011/5/19 Wesley Seidel <wesley.seidel at gmail.com>
>>>> > ahahaha
>>>> > Se levou tudo isso com um quicksort, imagine o tempo pra fazer essa
>>>> dança com um bubblesort.
>>>>
>>>> Imagina então um bogosort. :D
>>>>
>>>> http://en.wikipedia.org/wiki/Bogosort
>>>> =begin disclaimer
>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>> =end disclaimer
>>>>
>>>
>>>
>>>
>>> --
>>> Renato Santos
>>> http://www.renatocron.com/blog/
>>>
>>> =begin disclaimer
>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>>
>>
>>
>> --
>> Bruno C. Buss
>> http://brunobuss.wordpress.com/
>> http://www.dcc.ufrj.br/~brunobuss/
>>
>> =begin disclaimer
>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
> Wesley Seidel Carvalho
> 11-6671-6118
> 11-8169-1163
> http://twitter.com/wseidel
>
>
>
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
--
Renato Santos
http://www.renatocron.com/blog/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110519/e6cfdba3/attachment.html>
More information about the SaoPaulo-pm
mailing list