用PHP编写递归排序算法:快速排序和归并排序

快速排序算法的PHP实现:function quickSort($arr){$length = count($arr);if($length <= 1){return $arr;}$pivot = $arr[0];$left = [];$right = [];for($i=1; $i<$length; $i++){if($arr[$i] < $pivot){$left[] = $arr[$i];

快速排序算法的PHP实现:

function quickSort($arr){
    $length = count($arr);
    
    if($length <= 1){
        return $arr;
    }
    
    $pivot = $arr[0];
    $left = [];
    $right = [];
    
    for($i=1; $i<$length; $i++){
        if($arr[$i] < $pivot){
            $left[] = $arr[$i];
        }else{
            $right[] = $arr[$i];
        }
    }
    
    return array_merge(quickSort($left), [$pivot], quickSort($right));
}

$arr = [3, 6, 8, 10, 1, 2, 1];
$sortedArr = quickSort($arr);

print_r($sortedArr);

归并排序算法的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]){
            array_push($result, array_shift($left));
        }else{
            array_push($result, array_shift($right));
        }
    }
    
    while(count($left) > 0){
        array_push($result, array_shift($left));
    }
    
    while(count($right) > 0){
        array_push($result, array_shift($right));
    }
    
    return $result;
}

$arr = [3, 6, 8, 10, 1, 2, 1];
$sortedArr = mergeSort($arr);

print_r($sortedArr);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1008325.html

(0)
派派
上一篇 2024-04-27
下一篇 2024-04-27

相关推荐

  • win10休眠软件还在运行吗

    微软的操作系统内置具备节能省电的空闲功能,可帮助用户轻松将电脑设置至休眠状态。如此一来,便能有效节约消耗以及延长设备电池续航时间。在进入休眠模式之后,您的电脑将会暂时停止进行所有正在运行的程序,并将这些运作状态妥善地予以保存。win10休眠软件还在运行吗答:仅仅是显示屏进入待机状态的话,仍可以继续文件的传送过程;但若主控设备也采取了睡眠模式,那么所有的后台进程将无法继续运行。1、在采用Window

    2024-02-15
    0
  • 如何使用Nagios的日志功能进行性能分析和故障排查

    Nagios的日志功能可以用来记录监控系统的运行情况和检测结果,以便进行性能分析和故障排查。下面是使用Nagios的日志功能进行性能分析和故障排查的步骤:在Nagios配置文件中启用日志功能:在Nagios的配置文件(通常是nagios.cfg)中找到日志相关的配置项(如log_file、log_level等),确保日志功能已经启用并配置了合适的日志文件和日志级别。设置日志级别:根据需要调整日志级

    2024-04-25
    0
  • oracle快照过旧如何处理

    当Oracle快照过旧时,可以考虑以下几种处理方法:增加快照的保留时间:可以通过修改快照策略,延长快照的保留时间,以便更长时间内保留数据的快照。增加快照的频率:可以增加快照的频率,以便更加及时地捕捉数据的变化情况。手动清理过期的快照:定期检查和清理过期的快照,及时释放过时和不必要的快照空间。增加快照空间:如果快照空间不足导致快照过旧,可以考虑增加快照空间的容量。使用快照管理工具:可以使用专门的快照

    2024-04-10
    0
  • 为什么要购买域名(买域名能干嘛)

    为什么要购买域名,买域名能干嘛 内容导航: 为什么需要域名 域名为什么要购买 怎么办呢购买的域名已经被别人备案了 买域名干什么用 一、为什么需要域名 域名是网站的地址,容易记住网站…

    2022-06-12
    0
  • 什么都不会可以做网络推广吗(为什么要进行网络推广)

    什么都不会可以做网络推广吗,为什么要进行网络推广内容导航:网络推广没经验能做吗做网络推广累不累啊一般在公司上班需要工作多久网络推广自己做怎么在网络上做推广啊一、网络推广没经验能做吗可以做。但只有从基础发贴做起。我就是从发贴做起的。发多了就知道那些平台百度易收录。那些平台360易收录。然后再去研究为什么他们易收录。找到那个点,然后根椐这个点去把自己的官网修改成那样。这样就变成了SE

    2022-04-22
    0
  • tmch是什么(TMCH是什么意思)

    tmch是什么,TMCH是什么意思 内容导航: 为什么要加入TMCH,加入后有什么好处 请问TBCC是真的吗 是什么是什么 雷汞是什么用什么做出来 一、为什么要加入TMCH,加入后…

    2022-08-28
    0

发表回复

登录后才能评论