美文网首页PHP
PHP实现-快速排序 Quick Sort

PHP实现-快速排序 Quick Sort

作者: 保儿洁 | 来源:发表于2018-01-12 16:41 被阅读13次

    代码

    # 待排序数据
    $arr=array(1,43,54,62,21,66,32,78,36,76,39);  
    
    function quickSort($arr){
        $len = count($arr);
        #如果参数数组元素小于等于一个则返回
        if($len<=1){
            return $arr;
        }
        #第一个子元素为默认基准元素
        $base_num = $arr[0];
        $left_array = $right_array = [];
        for($i=1;$i<$len;$i++){
            #根据基准元素将数组分为两部分
            if($base_num>$arr[$i]){
                $left_array[] = $arr[$i];
            }else{
                $right_array[] = $arr[$i];
            }
        }
        #循环处理数组
        $left_array = quickSort($left_array);
        $right_array = quickSort($right_array);
        #合并返回结果
        return array_merge($left_array,[$base_num],$right_array);
    }
    

    Out

    array(11) {
      [0]=>
      int(1)
      [1]=>
      int(21)
      [2]=>
      int(32)
      [3]=>
      int(36)
      [4]=>
      int(39)
      [5]=>
      int(43)
      [6]=>
      int(54)
      [7]=>
      int(62)
      [8]=>
      int(66)
      [9]=>
      int(76)
      [10]=>
      int(78)
    }
    

    相关文章

      网友评论

        本文标题:PHP实现-快速排序 Quick Sort

        本文链接:https://www.haomeiwen.com/subject/zzvfoxtx.html