PHP实现快速排序算法相关案例

<?PHP
/**
 * 快速排序 --主要运用递归, 先把一个数找准位置,然后再递归把左右两边的数都找准位置
 */
function QSort($a= []){
    $nCount = count($a);
    if(($nCount) < 1){
        return $a;
    }
    // 一般认找最左边的为起始点。
    $nTarget = $a[0];
    $aLeft   = $aRight = [];
    //从起始点后面选第一个开始
    for($i=1; $i<$nCount; $i++){
        if($a[$i] >= $nTarget){
            // 从大到下
            $aLeft[]   = $a[$i];
        }else{
            $aRight[]  = $a[$i];
        }
    }
    // 排完一次后,递归调用方法,让左边和右边排序。
    $aLeft = QSort($aLeft);
    $aRight= QSort($aRight);
    return array_merge($aLeft,[$nTarget], $aRight);
}

$a = [120,2,500,3,34,1,700];
var_dump(QSort($a));

 

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...