基本算法个人PHP 实现(二)

本文详细介绍了PHP快速排序算法的核心思想、实现过程及应用实例,包括如何通过递归方式将数组分割并排序。
<?php
/**
 * php 快速排序
 */
$arr = array(7,8,6,5,3,10);
function quick($array){
        if(count($array) <=1) return $array;
        $k = $array[0];
        $left = array();
        $right = array();
        for($i =1; $i< count($array); $i++){
            if($array[$i] <= $k){
                $left[] = $array[$i];
            }else{
                $right[] = $array[$i];
            }
        }
        $left = quick($left);
        $right = quick($right);
        return array_merge($left,array($k),$right);
}
print_r(quick($arr));

?>

  核心思想就是每次取得 要排序的数组首个元素。 然后和数组的其他元素比较  大于他则排在左边否则在右。

  然后在对他左边的集合进行相同排序  直到左边只存在 0~ 1个元素。 (0代表本次排序的首元素最小。 1则代表只有1个元素大于他)

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值