• 技术文章 >头条

    php快速排序是什么

    小妮浅浅小妮浅浅2021-04-13 10:00:15原创5430

    本文操作系统:windows7系统、PHP5.6版本、DELL G3电脑。

    1.概念

    快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行快速排序,整个排序过程可以递归进行,以达到整个序列有序的目的。

    2.排序步骤

    找到当前数组中的任意一个元素,作为标准,新建两个空数组,遍历整个数组元素,遍历到的元素比当前元素要小,那么放到左边的数组;如果要大,放到另外一个数组中。

    递归思路

    (1)递归点:如果两个数组的元素大于1,就需要再进行分解

    (2)递归出口:数组元素变成1的时候

    3.实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    <?php

    // 快速排序

    function quickOrder($arr)

    {

        // 判断是否需要运行,下面要拿出一个中间值

        if (count($arr)<=1) {

            return $arr;

        }

        $middle = $arr[0]; // 中间值

        $left   = array();

        $right  = array();

        for ($i = 1; $i < count($arr); $i++) {

            if ($middle < $arr[$i]) {

                $right[] = $arr[$i];

            } else {

                $left[] = $arr[$i];

            }

        }

        // 递归排序划分好的2边数组

        $left = quickOrder($left);

        $right = quickOrder($right);

        return array_merge($left, array($middle), $right);

    }

    $arr = array(5, 2, 7, 6, 9, 3);

    $res = quickOrder($arr);

    var_dump($res);

    以上就是php快速排序的初步介绍,相信对于这种最快的排序方法,大家已经有所掌握。学会之后,在遇到类似数组排序的问题,可以优先选择快速排序的方法。更多php学习指路:php数组

    专题推荐:php快速排序
    上一篇:如何正确并快速安装python库? 下一篇:ps中套索工具有哪几种类型

    相关文章推荐

    • php数组排序的函数有几个• php冒泡排序是什么• php冒泡排序从小到大的方法• php选择排序是什么意思• php插入排序的使用

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网