Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,20 @@
|
|||
sub patience_sort {
|
||||
my @s = [shift];
|
||||
for my $card (@_) {
|
||||
my @t = grep { $_->[-1] > $card } @s;
|
||||
if (@t) { push @{shift(@t)}, $card }
|
||||
else { push @s, [$card] }
|
||||
}
|
||||
my @u;
|
||||
while (my @v = grep @$_, @s) {
|
||||
my $value = (my $min = shift @v)->[-1];
|
||||
for (@v) {
|
||||
($min, $value) =
|
||||
($_, $_->[-1]) if $_->[-1] < $value
|
||||
}
|
||||
push @u, pop @$min;
|
||||
}
|
||||
return @u
|
||||
}
|
||||
|
||||
print join ' ', patience_sort qw(4 3 6 2 -1 13 12 9);
|
||||
Loading…
Add table
Add a link
Reference in a new issue