• 排序算法__快速排序


     1 <?php
     2 
     3 $arr=array(1,43,54,62,21,66,32,78,36,76,39);  
     4 
     5 function quickSort($arr) {
     6     //先判断是否需要继续进行
     7     $length = count($arr);
     8     if($length <= 1) {
     9         return $arr;
    10     }
    11 
    12     //如果没有返回,说明数组内的元素个数 多余1个,需要排序
    13     //选择一个标尺
    14     //选择第一个元素
    15     $base_num = $arr[0];
    16 
    17     //遍历 除了标尺外的所有元素,按照大小关系放入两个数组内
    18     //初始化两个数组
    19     $left_array = array();//小于标尺的
    20     $right_array = array();//大于标尺的
    21 
    22     for($i=1; $i<$length; $i++) {
    23         if($base_num > $arr[$i]) {
    24             //放入左边数组
    25             $left_array[] = $arr[$i];
    26         } else {
    27             //放入右边
    28             $right_array[] = $arr[$i];
    29         }
    30     }
    31 
    32     //再分别对 左边 和 右边的数组进行相同的排序处理方式
    33     //递归调用这个函数,并记录结果
    34     $left_array = quickSort($left_array);
    35     $right_array = quickSort($right_array);
    36     
    37     //合并左边 标尺 右边
    38     return array_merge($left_array, array($base_num), $right_array);
    39 }
    40 
    41 $arr = quickSort($arr);
    42 
    43 echo "<pre>";
    44 print_r($arr);
    45 
    46 
    47 
    48 
    49 /*
    50 Array
    51 (
    52     [0] => 1
    53     [1] => 21
    54     [2] => 32
    55     [3] => 36
    56     [4] => 39
    57     [5] => 43
    58     [6] => 54
    59     [7] => 62
    60     [8] => 66
    61     [9] => 76
    62     [10] => 78
    63 )
    64  */
    View Code
  • 相关阅读:
    logback-spring.xml配置文件详解
    SpringBoot-Controller接收参数的几种常用方式
    spring boot配置定时任务设置
    SpringCloud 配置文件 application.yml和 bootstrap.yml区别
    ajax/get请求
    ajax封装2
    ajax封装1
    楼层特效
    旋转动画
    联动动画
  • 原文地址:https://www.cnblogs.com/hangtt/p/6427161.html
Copyright © 2020-2023  润新知