微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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));

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐