Algorithm-Permute
view release on metacpan or search on metacpan
lib/Algorithm/Permute.pm view on Meta::CPAN
Abigail's : 9 wallclock secs ( 8.07 usr + 0.30 sys = 8.37 CPU)
Algorithm::Permute : 5 wallclock secs ( 5.72 usr + 0.00 sys = 5.72 CPU)
Algorithm::Permute qw(permute): 2 wallclock secs ( 1.65 usr + 0.00 sys = 1.65 CPU)
List::Permutor : 27 wallclock secs (26.73 usr + 0.01 sys = 26.74 CPU)
Memoization : 32 wallclock secs (32.55 usr + 0.02 sys = 32.57 CPU)
perlfaq4 : 36 wallclock secs (35.27 usr + 0.02 sys = 35.29 CPU)
Permutation of B<nine> scalars (the Abigail's routine is commented out, because
it stores all of the result in memory, swallows all of my machine's memory):
Algorithm::Permute : 43 wallclock secs ( 42.93 usr + 0.04 sys = 42.97 CPU)
Algorithm::Permute qw(permute): 15 wallclock secs ( 14.82 usr + 0.00 sys = 14.82 CPU)
List::Permutor : 227 wallclock secs (226.46 usr + 0.22 sys = 226.68 CPU)
Memoization : 307 wallclock secs (306.69 usr + 0.43 sys = 307.12 CPU)
perlfaq4 : 272 wallclock secs (271.93 usr + 0.33 sys = 272.26 CPU)
The benchmark script is included in the bench directory. I understand that
speed is not everything. So here is the list of URLs of the alternatives, in
case you hate this module.
=over 4
=item *
Memoization is discussed in chapter 4 Perl Cookbook, so you can get it from
O'Reilly: ftp://ftp.oreilly.com/published/oreilly/perl/cookbook
=item *
Abigail's: http://www.foad.org/~abigail/Perl
=item *
List::Permutor: http://www.cpan.org/modules/by-module/List
=item *
The classic way, usually used by Lisp hackers: perldoc perlfaq4
=back
=head1 ACKNOWLEDGEMENT
In Edwin's words: Yustina Sri Suharini - my ex-fiance-now-wife, for
providing the permutation problem to me.
=head1 SEE ALSO
=over 2
=item * B<Data Structures, Algorithms, and Program Style Using C> -
Korsh and Garrett
=item * B<Algorithms from P to NP, Vol. I> - Moret and Shapiro
=back
=head1 AUTHOR
Edwin Pratomo <edpratomo@cpan.org> was the original author.
Stephan Loyd <sloyd@cpan.org> is co-maintainer after version 0.12.
The object oriented interface is taken from Tom Phoenix's C<List::Permutor>.
Robin Houston <robin@kitsite.com> invented and contributed the callback
style interface.
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 1999 by Edwin Pratomo.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
=cut
( run in 2.938 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )