PHP 快速排序

<?php
    //快速排序
    echo "<pre>";

    /** 
     * 生成一个随机数组 
     * @param 
     * @return array
     */ 
    function getArr(){
        $arr = array();
        for($i = 0;$i < 1000;$i++){
            $arr[] = mt_rand(0,99);
        }
        return $arr;
    }

    /** 
     * 快速排序方法 
     * @param array $arr
     * @return array ,排好序的数组
     */ 
    function quick_sort($arr){
        
        //判断$arr是否是一个数组
        if(!is_array($arr)) return false;

        //递归出口:判断是否数组里面只有一个元素
        //这里的长度一定要<=,因为$arr有可能为空
        if(count($arr) <= 1) return $arr;

        $left = $right = array();
        //取数组中的一个元素作为比较对象
        //大于该元素的放$right,小于该元素的放$left
        for($i=1;$i<count($arr);$i++){
            if($arr[$i] < $arr[0]){
                $left[] = $arr[$i];
            }else{
                $right[] = $arr[$i];
            }
        }

        $left = quick_sort($left);
        $right = quick_sort($right);

        return array_merge($left,array($arr[0]),$right);

    }

    //调用
    $arr = getArr();
    $_arr = quick_sort($arr);
    print_r($_arr);
原文地址:https://www.cnblogs.com/pikachu/p/10451574.html