写一段php 快速排序算法
时间: 2024-03-08 22:43:27 浏览: 110
快速排序是一种常用的排序算法,它的基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
下面是一个使用PHP实现的快速排序算法的示例代码:
```php
function quickSort($arr) {
// 如果数组长度小于等于1,则直接返回
$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];
}
}
// 递归调用快速排序,并将左右两个数组合并
return array_merge(quickSort($left), array($pivot), quickSort($right));
}
// 测试示例
$arr = array(5, 2, 8, 9, 1);
$result = quickSort($arr);
print_r($result);
```
这段代码定义了一个名为`quickSort`的函数,它接受一个待排序的数组作为参数,并返回排序后的数组。在函数内部,首先判断数组长度是否小于等于1,如果是,则直接返回原数组。然后选择一个基准元素(这里选择第一个元素),遍历数组,将比基准元素小的元素放入左数组,将比基准元素大的元素放入右数组。最后,递归调用`quickSort`函数对左右两个数组进行排序,并将排序后的左数组、基准元素、排序后的右数组合并返回。
运行上述示例代码,输出结果为:`Array ( => 1 => 2 => 5 => 8 => 9 )`,表示数组已经按照从小到大的顺序排列好了。
阅读全文