zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    java架构之路-(面试篇)Mysql面试大全
    web工程的路径问题详解
    SQL知识点总结
    Mybatis简介
    mysql大全
    配置心得
    spring4.1.3+springmvc+mybatis3.2.1整合
    jstl标签
    jstl标签库
    Java并发控制机制
  • 原文地址:https://www.cnblogs.com/cloudshadow/p/5280379.html
Copyright © 2011-2022 走看看