技术文章 > 头条 >  PHP > 正文

php快速排序是什么意思

小妮浅浅

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

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

免费视频教程
本教程部分素材来源于网络,版权问题联系站长!
相关文章
  php数组排序的函数
  php冒泡排序是什么意思
  php冒泡排序从小到大的操作
  php选择排序是什么
  php插入排序的用法
相关视频章节
  什么是tkinter窗口
  例子3 登录窗口
  例子2 登录窗口
  例子1 登录窗口
  pack grid place 放置位置
作者信息

小妮浅浅

认证0级讲师

最近文章
python在协程中增加任务 458
python pyg2plot的原理 354
python中pyg2plot如何使用? 160
推荐视频
视频教程分类