欢迎访问宙启技术站
智能推送

快速排序算法实现:使用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为数组的大小。它是一种高效的排序算法,在实际应用中被广泛采用。