文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>对sort排序的加速 -- Schwartzian变换

对sort排序的加速 -- Schwartzian变换

时间:2008-07-24  来源:hdc1112hdc1112

这里说的不是对数值型数组的排序,因为它们的排序用@new=sort @old就可以了,没什么可以加速的

我说的是非数值型的排序,比如有个索引数组,数组里每个元素都是字符串,每个字符串作为参数传递进入ask_for_result函数后会返回一个值,我们要根据这个值的大小来对索引数组进行排序。

一般写法为:
@new=sort {ask_for_result($a) cmp ask_for_result($b)} @old;

改进写法为
@new=
map $_->[0],
sort {$a->[1] cmp $b->[1]}
map [$_,ask_for_result($_)],
@old;

减少了对ask_for_result函数的调用次数,这个方法叫做Schwartzian变换
相关阅读 更多 +
排行榜 更多 +
哥布林弹球b服手游下载

哥布林弹球b服手游下载

休闲益智 下载
小马样式盒游戏下载

小马样式盒游戏下载

休闲益智 下载
异变小镇中文版下载安装

异变小镇中文版下载安装

冒险解谜 下载