编辑代码

<?php 


echo '冒泡排序<br/>';
$arr = [15,1,2,6,3,87,2323,76,23];
//var_dump(maopao($arr));
function maopao($arr){
    //获取数组长度
    $len = count($arr);
    //设置数组前一个的长度
    $l = $len - 1;

    //循环判断数组中的值的大小
    for($i=0;$i<$len;$i++){

        for($j=0;$j<$l;$j++){
            //判断数组前后两个值的大小
            if($arr[$j]>$arr[$j+1]){
                $tmp = $arr[$j];//大值
                //前后值反转
                $arr[$j] = $arr[$j+1];
                $arr[$j+1] = $tmp;
            }
        }
    }
    return $arr;
}


echo '快速排序<br/>';
var_dump(quick_sort($arr));
function quick_sort($arr){
    $len = count($arr);
    if($len <= 1) return $arr;

    $left = [];
    $right = [];
    //拿出数组中第一个元素 和其他元素比较
    $ken = $arr[0];

    for($i = 1; $i < $len; $i++){
        
        if($arr[$i] <= $ken){
            $left[] = $arr[$i];
        }else{
            $right[] = $arr[$i];
        }
    }
    //递归
    $left = quick_sort($left);
    $right = quick_sort($right);

    return array_merge($left,[$ken],$right);
}