首页主机资讯php快速排序代码怎么写

php快速排序代码怎么写

时间2025-09-27 19:32:03发布访客分类主机资讯浏览711
导读:以下是 PHP 快速排序的示例代码: function quickSort(&$arr, $left, $right { if ($left < $right { $pivotIndex = par...

以下是 PHP 快速排序的示例代码:

function quickSort(&
$arr, $left, $right) {
    
    if ($left <
 $right) {
    
        $pivotIndex = partition($arr, $left, $right);
    
        quickSort($arr, $left, $pivotIndex - 1);
    
        quickSort($arr, $pivotIndex + 1, $right);

    }

}
    

function partition(&
$arr, $left, $right) {
    
    $pivot = $arr[$right];
    
    $i = $left - 1;
    
    for ($j = $left;
     $j <
     $right;
 $j++) {
    
        if ($arr[$j] <
 $pivot) {
    
            $i++;
    
            list($arr[$i], $arr[$j]) = array($arr[$j], $arr[$i]);

        }

    }
    
    list($arr[$i + 1], $arr[$right]) = array($arr[$right], $arr[$i + 1]);
    
    return $i + 1;

}
    

$arr = array(3, 7, 8, 5, 2, 1, 9, 5, 4);
    
quickSort($arr, 0, count($arr) - 1);
    
print_r($arr);
    

上面的代码定义了一个 quickSort 函数和一个 partition 函数来实现快速排序算法。在 quickSort 函数中,我们首先判断左边界是否小于右边界,如果是,则进行以下操作:

  1. 调用 partition 函数对数组进行划分,并返回枢轴元素的索引。
  2. 递归调用 quickSort 函数对左半部分进行排序。
  3. 递归调用 quickSort 函数对右半部分进行排序。

partition 函数中,我们选择最右边的元素作为枢轴元素,然后将数组中的元素按照与枢轴元素的大小关系进行划分。如果当前元素小于枢轴元素,则将其与左边的元素交换位置。最后将枢轴元素放到正确的位置上,并返回其索引。

在上面的示例代码中,我们定义了一个包含乱序整数的数组 $arr,然后调用 quickSort 函数对其进行排序。最后使用 print_r 函数输出排序后的结果。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: php快速排序代码怎么写
本文地址: https://pptw.com/jishu/710378.html
android supportsrtl有什么好处 android appcompatactivity更新会出问题吗

游客 回复需填写必要信息