【发布时间】:2014-08-18 04:00:35
【问题描述】:
在这个修改后的快速排序算法中,我在 Perl 中作为个人项目的一部分进行剖析/重写:
sub quick_sort {
my @a = @_;
return @a if @a < 2;
my $p = splice @a, int( $#a / 2 ), 1;
(
quick_sort( grep $_ < $p, @a ),
$p,
quick_sort( grep $_ >= $p, @a ),
);
}
print "Enter a list of numbers, separated by commas (e.g. 2,5,1,7): ";
my @a = split ",", <STDIN>;
@a = quick_sort(@a);
chomp(@a);
print "@a\n";
我很困惑这个语句,或者更确切地说,用逗号分隔的一组语句(我猜?)做什么:
quick_sort(grep $_ < $p, @a),
$p,
quick_sort(grep $_ >= $p, @a);
我什至不知道那叫什么,所以谷歌搜索“用逗号分隔的 perl 语句”之类的东西没有任何用处。我已经尝试用分号分隔它们,但是当我尝试这样做时输出不正确。这叫什么,它在做什么?
【问题讨论】: