三行实现快速排序之PERL和PYTHON

PERL我觉得写得让人抓狂,让人崩溃才是真正领悟到精髓,显然我没这水平,比如快速排序的实现,一如既往地赏心悦目:

sub qsort {
    return () unless @_;
    (qsort(grep { $_ < $_[0] } @_[1 .. $#_]), $_[0],
        qsort(grep { $_ >= $_[0] } @_[1 .. $#_]));
}

甚至结尾连个return都不带,犀利就是这么任性,总有比你更简单的方法实现一个问题

如果说perl这么任性,我觉得可以接受,可是python同样一个函数内容不超过3行的递归解决,只能感叹能力不济

def qsort(L):
    if len(L) <= 1:    return L
    return qsort([lt for lt in L[1:] if lt < L[0]]) + L[0:1] + \
            qsort([ge for ge in L[1:] if ge >= L[0]])

甚至你觉得不满意,觉得不够漂亮,可以搜索下lambda的写法,只能说喜欢深层次挖掘以及喜欢晦涩东西的人同样这么任性

发表回复