Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

PHP种排序算法(php归并排序算法)

作者:风中孤狼   发布日期:2025-08-18   浏览:309

PHP中的归并排序算法可以使用以下代码实现:

function mergeSort($arr) {
    $length = count($arr);
    if ($length <= 1) {
        return $arr;
    }

    $mid = (int)($length / 2);
    $left = array_slice($arr, 0, $mid);
    $right = array_slice($arr, $mid);

    $left = mergeSort($left);
    $right = mergeSort($right);

    return merge($left, $right);
}

function merge($left, $right) {
    $result = [];
    while (count($left) > 0 && count($right) > 0) {
        if ($left[0] <= $right[0]) {
            $result[] = array_shift($left);
        } else {
            $result[] = array_shift($right);
        }
    }

    while (count($left) > 0) {
        $result[] = array_shift($left);
    }

    while (count($right) > 0) {
        $result[] = array_shift($right);
    }

    return $result;
}

// 示例用法
$arr = [5, 3, 8, 6, 2, 7, 1, 4];
$sortedArr = mergeSort($arr);
print_r($sortedArr);

以上代码定义了两个函数,mergeSort用于对数组进行归并排序,merge用于合并两个已排序的数组。在mergeSort函数中,首先判断数组的长度是否小于等于1,如果是,则直接返回该数组。否则,将数组分成两个部分,分别对左半部分和右半部分进行递归调用mergeSort函数。最后,将左半部分和右半部分的结果传递给merge函数进行合并,并返回合并后的结果。

使用示例中的输入数组[5, 3, 8, 6, 2, 7, 1, 4],输出结果为[1, 2, 3, 4, 5, 6, 7, 8]

上一篇:php禁止notice(PHP禁止IP浏览)

下一篇:php 随机 短信验证码(php发送邮件验证码)

大家都在看

php session用法

php 定义常量

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 判断是否为空

php 拆分字符串

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站