• PHP 快速排序法


     1 <?php
     2 function quickSort($arr) {
     3     //先判断是否需要继续进行
     4     $length = count($arr);
     5     if ($length <= 1) {
     6         return $arr;
     7     }
     8     //如果没有返回,说明数组内的元素个数 多余1个,需要排序
     9     //选择一个标尺
    10     //选择第一个元素
    11     $base_num = $arr[0];
    12     //遍历 除了标尺外的所有元素,按照大小关系放入两个数组内
    13     //初始化两个数组
    14     $left_array = array();//小于标尺的
    15     $right_array = array();//大于标尺的
    16     for ($i = 1; $i < $length; $i++) {
    17         if ($base_num > $arr[$i]) {
    18             //放入左边数组
    19             $left_array[] = $arr[$i];
    20         } else {
    21             //放入右边数组
    22             $right_array[] = $arr[$i];
    23         }
    24     }
    25     //再分别对 左边 和 右边的数组进行相同的排序处理方式
    26     //递归调用这个函数,并记录结果
    27     $left_array = quickSort($left_array);
    28     $right_array = quickSort($right_array);
    29     
    30     //合并左边 标尺 右边
    31     return array_merge($left_array, array($base_num), $right_array);
    32 }
    33 $arr = array(88, 1, 2, 5, 4, 3, 66, 0);
    34 $res = quickSort($arr);
    35 print_r($res);
  • 相关阅读:
    [转]优秀的程序员不会觉得累成狗是一种荣耀
    .NET读写Excel工具Spire.XlS使用(DataExport )
    WPF之Binding深入探讨
    第一个WPF应用程序
    Visio作图
    唯一的重复元素
    Strange Problem O(∩_∩)O~
    数据库知识点①
    HDU 2825 Wireless Password
    POJ 1625 Censored!
  • 原文地址:https://www.cnblogs.com/cloudshadow/p/5280379.html
Copyright © 2020-2023  润新知