PHP实现快速排序

简介: `quickSort` 函数实现了一个快速排序算法。当数组长度小于或等于1时,直接返回数组。选择第一个元素作为基准,遍历数组将元素分别放入左(小于基准)和右(大于等于基准)两个子数组。递归地对子数组进行排序,最后合并结果。示例展示了对一个无序数组排序并输出。

function quickSort($arr) {
// 基线条件:如果数组为空或只有一个元素,直接返回
$length = count($arr);
if ($length <= 1) {
return $arr;
}

// 选择一个基准元素
$pivot = $arr[0];
$left = $right = array();

// 将数组分为左右两个子数组
for ($i = 1; $i < $length; $i++) {
    if ($arr[$i] < $pivot) {
        $left[] = $arr[$i];
    } else {
        $right[] = $arr[$i];
    }
}

// 递归地对左右子数组进行快速排序
$left = quickSort($left);
$right = quickSort($right);

// 合并左右子数组和基准元素
return array_merge($left, array($pivot), $right);

}

// 示例用法
$unsortedArray = array(5, 9, 2, 6, 1, 8, 3, 7);
$sortedArray = quickSort($unsortedArray);
echo "Sorted Array: ";
foreach ($sortedArray as $element) {
echo $element . " ";
}

目录
相关文章
|
2月前
|
数据处理 PHP 开发者
深入理解PHP中的数组排序技巧
【9月更文挑战第13天】在PHP编程中,处理数组数据是一项常见而重要的任务。本文旨在揭示数组排序的多种方法及其适用场景,通过直观的代码示例和深入浅出的解释,引导读者掌握PHP数组排序的技巧,提升编程效率和代码质量。
|
6月前
|
PHP
php实现归并排序
php实现归并排序
30 2
|
6月前
|
PHP
PHP实现桶排序
`bucketSort`函数用于对数组进行排序。它首先找出数组的最小值和最大值,计算出桶的数量,然后将元素分配到相应桶中。每个桶内部进行排序后,再合并所有桶中的元素以得到最终有序数组。示例展示了如何使用该函数对一个无序数组进行排序并打印结果。
22 0
|
11月前
|
算法 小程序 PHP
PHP实现递归排序
在leetcode练习算法的时候,发现一个算法需要用到递归。 递归是个好东西,但是吧,一般不理解其精髓的,很难写出一个好的递归。 递归其实就是函数本身直接或者间接地调用自身的一种编程方法(我自己调用我自己~),也可以理解为有反复执行过程的一种方法,这个就与循环非常相似,但是递归调用的函数中必须要有终止条件,也就是一定
49 1
|
数据安全/隐私保护 索引
php-冒泡排序
php-冒泡排序
78 0
php-冒泡排序
|
存储 PHP 块存储
php-递归
php-递归
115 0
|
算法 搜索推荐 PHP
常见排序算法及PHP实现
冒泡排序 是一种交换排序,它的基本思想是:对待排序记录从后往前(逆序)进行多遍扫描,当发现相邻两条记录的次序与排序要求的规则不符时,就将这两个记录进行交换。这样,值较小的记录将逐渐从后面向前移动,就像气泡在水中向上浮一样。
常见排序算法及PHP实现
|
PHP
【PHP】冒泡排序
【PHP】冒泡排序
89 0
PHP递归
代码如下
|
搜索推荐 PHP
PHP面试题:使用PHP描述快速排序算法,对象可以是一个数组?
PHP面试题:使用PHP描述快速排序算法,对象可以是一个数组?
93 0