首页 > 试题广场 > 关于arsort()函数,如下说法正确的是()
[单选题]
关于arsort()函数,如下说法正确的是()
  • 对数组值按照从大到小排序,稳定排序
  • 对数组值按照从大到小排序,非稳定排序
  • 对数组键按照从大到小排序,稳定排序
  • 对数组键按照从小到大排序,非稳定排序

选A?

稳定排序的定义:

待排序的记录序列中可能存在两个或两个以上关键字(键值)相等的记录。排序前的序列中Ri领先于Rj(即i<j).若在排序后的序列中Ri仍然领先于Rj,则称所用的方法是稳定的。

<?php

function arsorts() {
    $arr = [
        "ac" => "apple",
        "b" => "banana",
        "c" => "cat",
        "ab" => "apple"
    ];
    arsort($arr);
    var_dump($arr);
}
arsorts();
?>

结果为:

array(4) {
  'c' =>
  string(3) "cat"
  'b' =>
  string(6) "banana"
  'ac' =>
  string(5) "apple"
  'ab' =>
  string(5) "apple"
}

所以应该是稳定的才对吧??希望各位可以参与讨论和解答下,谢谢

编辑于 2019-08-31 18:39:03 回复(0)
发表一下个人看法
稳定排序的概念: 排序前两个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同

从上面可以看出 原来数组的键值排序是  DAC  打印出来的是  CAD   顺序乱了
欢迎大家讨论...
编辑于 2019-07-07 12:56:13 回复(5)