php如何对文字排序,php – 如何对SplFixedArray进行排序?

首先,祝贺找到并使用SplFixedArrays!我认为它们在vanilla PHP中的利用率很低……

正如您可能已经意识到的那样,它们的性能是无与伦比的(与通常的PHP阵列相比) – 但这确实存在一些权衡,包括缺乏PHP函数来排序它们(这是一种耻辱)!

实现自己的冒泡排序是一种相对简单而有效的解决方案.只需迭代,查看每个连续的元素对,将最高的元素放在右边.冲洗并重复,直到阵列分类:

$arr = new SplFixedArray(10);

$arr[0] = 2345;

$arr[1] = 314;

$arr[2] = 3666;

$arr[3] = 93;

$arr[4] = 7542;

$arr[5] = 4253;

$arr[6] = 2343;

$arr[7] = 32;

$arr[8] = 6324;

$arr[9] = 1;

$moved = 0;

while ($moved < sizeof($arr) - 1) {

$i = 0;

while ($i < sizeof($arr) - 1 - $moved) {

if ($arr[$i] > $arr[$i + 1]) {

$tmp = $arr[$i + 1];

$arr[$i + 1] = $arr[$i];

$arr[$i] = $tmp;

}

$i++;

var_dump ($arr);

}

$moved++;

}

它不快,效率不高.为此您可以考虑使用Quicksort – 在线记录的示例包括在wikibooks.org处的这个示例(需要修改以使用SplFixedArrays).

说真的,除了让你的问题得到解答之外,我真的觉得强迫自己问为什么像SplFixedArray这样的东西存在并迫使你自己去理解“快速调用array_sort()”背后的原因(以及为什么它很快需要很长时间才能完成运行)使程序员和程序员之间的差异.我为你的问题鼓掌!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值