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

使用PHP函数编写快速排序算法

发布时间:2023-07-03 09:16:16

快速排序算法(Quick Sort)是一种常用的排序算法,具有平均时间复杂度为O(n log n)的优势。它利用了分治的思想,将数组分成两个子数组,然后对这两个子数组进行递归排序,最后合并成一个有序数组。下面是使用PHP函数编写快速排序算法的示例代码:

function quickSort($arr) {
    $length = count($arr);
    
    if ($length <= 1) {
        return $arr;
    } else {
        $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(8, 3, 1, 5, 9, 2, 7, 4, 6);
$result = quickSort($arr);
print_r($result);

在这个示例代码中,我们定义了一个quickSort函数来实现快速排序算法。函数接受一个数组作为参数,并返回排序后的数组。首先,函数判断数组的长度,如果长度小于等于1,则直接返回原数组。否则,我们选择数组中的 个元素作为基准值($pivot)。然后,遍历数组中的元素,如果元素小于基准值,则将其放入左子数组($left),否则放入右子数组($right)。最后,通过递归调用quickSort函数对左右子数组进行排序,然后将左子数组、基准值和右子数组合并成一个有序数组。

在测试部分,我们定义一个包含乱序数字的数组,并调用quickSort函数对数组进行排序。最后,打印排序后的结果。

快速排序算法是一种高效的排序算法,在实际应用中经常被使用。通过使用PHP的递归和数组函数,我们可以简洁地实现快速排序算法。