zoukankan      html  css  js  c++  java
  • php 快速排序

    <?php 
    function quickSort($arr) {
    
        //先判断是否需要继续进行
    
        $length = count($arr);
    
        if($length <= 1) {
    
            return $arr;
    
        }
    
        //选择第一个元素作为基准
    
        $base_num = $arr[0];
    
        //遍历除了标尺外的所有元素,按照大小关系放入两个数组内
    
        //初始化两个数组
    
        $left_array = array();  //小于基准的
    
        $right_array = array();  //大于基准的
    
        for($i=1; $i<$length; $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, array($base_num), $right_array);
    
    }
    $arr =[345,12,566,11,777];
    var_dump(quickSort($arr));die;

    找一个基准,然后把它做比较,比它小的放左边数组,比它大的放右边数组,然后回调数组再依次类推,在数组左边在进行排序

    最后获取一个排序数组

  • 相关阅读:
    CF1354D
    Keiichi Tsuchiya the Drift King
    二分查找[搬运链接]
    树状数组的修炼 疑惑篇
    离线
    关于二维差分和二维前缀和的注意事项
    QWORD PTR [rcx],0x0 ??
    字典树
    数据库题
    需要掌握的技能汇总
  • 原文地址:https://www.cnblogs.com/kevin-yang123/p/13890237.html
Copyright © 2011-2022 走看看