快速排序

//测试调用
    public function aa(){
        $ad = [12,3,5,132,5,13,56,23,56,89,16,13,54,6,984,4456,1,56,13,56,4,666,3,21564,321,45,31,341,2315,4];
        $res = $this->QuickSort($ad);
        return $res;
    }
/**
 *@func 快速排序
 * @describe 从数组中选一个基准点,遍历数组,大于基准点的放到一个数组,其余放到另一个数组。
 *      递归的对子数组排序
 * @author vio
**/
private function QuickSort(array $arr=[]){
    $count = count($arr);
    if ($count<=1){
        return $arr;
    }
    $pivot = $arr[0];
    $left = $right = [];
    for($i=1;$i<$count;$i++){
        if($arr[$i]<$pivot){
            array_push($left,$arr[$i]);
        }else{
            array_push($right,$arr[$i]);
        }
    }
    $left = $this->QuickSort($left);
    $right = $this->QuickSort($right);
    return array_merge($left,[$pivot],$right);
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!