PHP-快排

$a = array(2,3,1,44,22,3,11,22,42,122,543);

function quick_sort($a)
{
    // 非数组,或数字长度小于1,递归结束条件为数组长度等于1
    if ( !isArray($a) || count($a) <= 1) {
        return $a;
    }
    $middle = $a[0]; // 中间值
    $left = array(); // 接收小于中间值
    $right = array();// 接收大于中间值
    // 循环比较
    for ($i=1; $i < count($a); $i++) { 
        if ($middle < $a[$i]) {// 大于中间值
            $right[] = $a[$i];
        } else {            // 小于中间值
            $left[] = $a[$i];
        }
    }
    // 递归排序划分好的2边
    $left = quick_sort($left);
    $right = quick_sort($right);
    // 合并排序后的数据,别忘了合并中间值
    return array_merge($left, array($middle), $right);
}

print_r(quick_sort($a));

你可能感兴趣的:(PHP,PHP)