php中的递归技术

1.快速排序:

function f($num,$arr,$start,$end){

    if($start <= $end){

        $mid = floor(($start + $end)/2) ;

        if($arr[$mid] > $num){  //左边

            f($num,$arr,0,$mid-1);

        }elseif($arr[$mid] < $num){ //右边

            f($num,$arr,$mid+1,$end);

        }else{

            echo "{$num}存在于数组的位置为$mid";

        }

    }else{

        echo "数组中不存在$num";

    }


}

$arr = [2,4,5,7,9,11,14,16,19];

f(2,$arr,0,count($arr)-1);

echo "<hr>";

f(11,$arr,0,count($arr)-1);

echo "<hr>";

f(19,$arr,0,count($arr)-1);


结果截图:


2.快速排序

function kuaiSort($arr){

    if(count($arr) <= 1){

        return $arr;

    }

    if(!is_array($arr)){

        return false;

    }

    $left = array();

    $right = array();

    $key = $arr[0];

    for($i = 1 ; $i < count($arr) ; $i++){

        if($arr[$i] < $key){

            array_push($left,$arr[$i]);

        }else{

            array_push($right,$arr[$i]);

        }

    }

    $left = kuaiSort($left);

    $right = kuaiSort($right);

    return array_merge($left,array($key),$right);

}

$arr = [2,22,5,10,18,1,4,7];

var_dump(kuaiSort($arr));


结果截图:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容