排序请教。自定义规则
大家好,事情是这样的:
一文件夹中有很多文件,名字有如下特点:
复制代码
要求按normal,hover,click这样的顺序输出,即:
复制代码
小骆驼排序那里看了又看,说cmp返回三个参数,看得云里雾里的。实在是还未能看懂。特求指教。
一文件夹中有很多文件,名字有如下特点:
- XX_normal.file
- XX_click.file
- XX_hover.file
- YY_click.file
- YY_hover.file
- YY_normal.file
- ZZ_click.file
- ZZ_hover.file
- ZZ_normal.file
- XX_normal.file,XX_hover.file,XX_click.file
- YY_normal.file,YY_hover.file,YY_click.file
- ZZ_normal.file,ZZ_hover.file,ZZ_click.file
作者: perlnewbie 发布时间: 2011-05-31
有序数据集的基本特征是 任意两个元素 a b 比较必然属于以下三种关系 a < b, a = b, a > b。存在一个比较函数来指明这三种情况。
两个字符串 a b 通过函数 cmp 比较, 如果 a < b 那么返回 -1 a = b 返回 0 a > b 返回 1
对于你的数据集你只需要定义你自己的比较规则,然后要求 sort 用你这个规则比较就可以了。Perl 约定这个函数返回 -1 表示 a < b 返回 0 表示 a=b 返回 1 表示 a > b
两个字符串 a b 通过函数 cmp 比较, 如果 a < b 那么返回 -1 a = b 返回 0 a > b 返回 1
对于你的数据集你只需要定义你自己的比较规则,然后要求 sort 用你这个规则比较就可以了。Perl 约定这个函数返回 -1 表示 a < b 返回 0 表示 a=b 返回 1 表示 a > b
作者: zhlong8 发布时间: 2011-05-31