对一组数进行排序(快速排序算法)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42565994/article/details/102775074

思路:通过一趟排序分成两部分,然后递归对这两部分排序,最后合并。

<?php
function q($array) {
    if (count($array) <= 1) {return $array;}
//以$key为界,分成两个子数组
    $key = $array[0];
    $l = array();
    $r = array();
//分别进行递归排序,然后合成一个数组
    for ($i=1; $i<count($array); $i++) {
    if ($array[$i] <= $key) { $l[] = $array[$i]; }
    else { $r[] = $array[$i]; }
  }
    $l = q($l);
    $r = q($r);
    return array_merge($l, array($key), $r);
}
$arr = array(1,2,44,3,4,33);
print_r( q($arr) );

猜你喜欢

转载自blog.csdn.net/qq_42565994/article/details/102775074
今日推荐