文章 > PHP > php快速排序是什么意思

php快速排序是什么意思

头像

小妮浅浅

2021-02-08 17:40:0714906浏览 · 0收藏 · 0评论

在排序的效率方面,大家会偏向于选择最快的方法。那么就不得不提到快速排序的方法了,有时候我们也会把它叫做快排。会以数组中的一个数据为参照点,放到左右两边不同的区域中。这种方法能够在一定程序上简单对比的时候,也是递归思想优势之处。下面我们就快速排序的概念、排序步骤、实例分别带来讲解。

1.概念

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

2.排序步骤

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

递归思路

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

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

3.实例

<?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数组

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!