当前位置:首页 > PHP

php实现归并

2026-01-29 15:12:40PHP

php实现归并

php实现归并

归并排序的实现

归并排序是一种分治算法,通过递归将数组拆分为更小的子数组,排序后再合并。以下是PHP实现归并排序的代码示例:

function mergeSort(array $array): array {
    if (count($array) <= 1) {
        return $array;
    }

    $mid = (int)(count($array) / 2);
    $left = array_slice($array, 0, $mid);
    $right = array_slice($array, $mid);

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

    return merge($left, $right);
}

function merge(array $left, array $right): array {
    $result = [];
    $leftIndex = $rightIndex = 0;

    while ($leftIndex < count($left) && $rightIndex < count($right)) {
        if ($left[$leftIndex] < $right[$rightIndex]) {
            $result[] = $left[$leftIndex];
            $leftIndex++;
        } else {
            $result[] = $right[$rightIndex];
            $rightIndex++;
        }
    }

    while ($leftIndex < count($left)) {
        $result[] = $left[$leftIndex];
        $leftIndex++;
    }

    while ($rightIndex < count($right)) {
        $result[] = $right[$rightIndex];
        $rightIndex++;
    }

    return $result;
}

使用示例

$unsortedArray = [34, 7, 23, 32, 5, 62];
$sortedArray = mergeSort($unsortedArray);
print_r($sortedArray);

算法分析

时间复杂度为O(n log n),空间复杂度为O(n)。归并排序是稳定的排序算法,适用于大数据量排序,但需要额外空间存储临时数组。

标签: php
分享给朋友:

相关文章

php 线程实现

php 线程实现

PHP 线程实现方法 PHP 本身是单线程语言,但可以通过扩展或库实现多线程功能。以下是几种常见的实现方式: 使用 pthreads 扩展 pthreads 是一个 PHP 扩展,允许在 PHP 中…

php搜索功能的实现

php搜索功能的实现

实现PHP搜索功能的方法 数据库搜索 使用SQL的LIKE语句进行模糊匹配,适用于简单的搜索需求。 $searchTerm = $_GET['search']; $query = "SELECT *…

php下载文件实现

php下载文件实现

PHP 下载文件实现方法 使用 header() 函数强制下载 设置合适的 HTTP 头信息,强制浏览器下载文件而非直接打开。 $file_path = '/path/to/file.pdf'; $…

php实现单一入口

php实现单一入口

PHP 单一入口实现方法 单一入口(Single Entry Point)是一种设计模式,通过一个入口文件(如index.php)集中处理所有请求,实现路由分发、统一初始化等操作。以下是实现方法:…

php实现登录功能

php实现登录功能

创建登录表单 在HTML中创建一个表单,包含用户名和密码输入框。表单的action属性指向处理登录的PHP文件,method设置为POST。 <form action="login.php"…

php实现在线客服

php实现在线客服

PHP实现在线客服系统 在线客服系统通常需要实时通信功能,可通过PHP结合WebSocket或长轮询实现。以下是几种常见实现方式: 使用WebSocket实现实时通信 安装Ratchet库(PHP…