快速排序算法实现:使用PHP函数对数组进行排序
发布时间:2023-07-03 23:22:56
快速排序是一种常用的排序算法,它的思想是通过选取一个基准元素,将数组分割为两个子数组,分别包含比基准元素小和大的元素。然后对两个子数组再进行递归调用快速排序,最终数组就会被排序。
下面是使用PHP函数实现快速排序算法的示例代码:
function quickSort($arr) {
// 如果数组为空或只包含一个元素,直接返回
if (count($arr) < 2) {
return $arr;
}
// 选择一个基准元素
$pivot = $arr[0];
$less = [];
$greater = [];
// 将数组分割为两个子数组
for ($i = 1; $i < count($arr); $i++) {
if ($arr[$i] <= $pivot) {
$less[] = $arr[$i];
} else {
$greater[] = $arr[$i];
}
}
// 递归调用快速排序,并将结果合并
return array_merge(quickSort($less), [$pivot], quickSort($greater));
}
// 测试
$arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
$result = quickSort($arr);
print_r($result);
在这个示例代码中,quickSort函数接受一个数组作为参数,并返回一个排好序的数组。首先判断数组是否为空或只包含一个元素,如果是,则直接返回该数组。否则,选择数组的第一个元素作为基准元素。然后遍历数组,将比基准元素小的元素放入$less数组,将比基准元素大的元素放入$greater数组。最后,递归调用quickSort函数对两个子数组进行排序,并将结果合并。
在主程序部分,定义一个测试数组$arr,并调用quickSort函数对其进行排序,然后打印排序后的结果。
运行以上代码会输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9],即为数组排序后的结果。
快速排序算法的时间复杂度为O(n log n),其中n为数组的大小。它是一种高效的排序算法,在实际应用中被广泛采用。
