利用 Schwartzian Transform(施瓦茨变换) 进行排序

Schwartzian Transform(施瓦茨变换) 是perl中一种高效的排序算法 ,详见http://en.wikipedia.org/wiki/Schwartzian_transform
在平时工作中,会有非常复杂的排序需求,比如,对文件所有的含有/RE/的行,按第一列升序,再按第二列降序排,…
诸如此类的排序,利用施瓦茨变换可以事半功倍。
施瓦茨变换的一般格式如下:

这里我举一个实例来说说明这个变化,有如下的的json数据:

要求根据createdTime的值,取最大createdTime值的versionId,我们利用施瓦茨变换的perl单行实现排序,然后取第一行

相对比用perl脚本实现,取两个值,以createdTime为键,构造一个哈希,然后对哈希进行排序。

 

发表评论

邮箱地址不会被公开。 必填项已用*标注