53、PHP 实现归并排序

devtools/2024/9/24 21:11:05/

题目: PHP 实现归并排序

描述:

  • 将指定的两个有序数组(arr1,arr2)合并并且排序
  • 我们可以找到第三个数组,然后依次从两个数组的开始取数据
  • 哪个数据小就先取哪个的,然后删除掉刚刚取过的数据
php">function al_merge($arrA,$arrB)
{$arrC = array();while(count($arrA) && count($arrB)){//这里不断的判断哪个值小,就将小的值给到arrC,但是到最后肯定要剩下几个值,//不是剩下arrA里面的就是剩下arrB里面的而且这几个有序的值,肯定比arrC里面所有的值都大所以使用$arrC[] = $arrA['0'] < $arrB['0'] ? array_shift($arrA) : array_shift($arrB);}return array_merge($arrC, $arrA, $arrB);
}
//归并排序主程序
function al_merge_sort($arr){$len=count($arr);if($len <= 1)return $arr;//递归结束条件,到达这步的时候,数组就只剩下一个元素了,也就是分离了数组$mid = intval($len/2);//取数组中间$left_arr = array_slice($arr, 0, $mid);//拆分数组0-mid这部分给左边left_arr$right_arr = array_slice($arr, $mid);//拆分数组mid-末尾这部分给右边right_arr$left_arr = al_merge_sort($left_arr);//左边拆分完后开始递归合并往上走$right_arr = al_merge_sort($right_arr);//右边拆分完毕开始递归往上走$arr=al_merge($left_arr, $right_arr);//合并两个数组,继续递归return $arr;
}

http://www.ppmy.cn/devtools/88573.html

相关文章

【LeetCode】33.搜索旋转排序数组

1. 题目 2. 分析 说实话&#xff0c;这道题挺难想的。难点在于&#xff0c;数组非完全有序就会让人产生错觉&#xff08;这道题无法二分&#xff09;。如果不是题目要求O(logn)的复杂度&#xff0c;那我觉得我肯定不会想到。可以这么分析&#xff1a; 对于一个旋转排序数组&am…

uniapp HBuilder闪退,有页面或代码量限制

uniapp有个巨坑&#xff0c;一但项目的总vue数量或代码量超过一个值&#xff0c;则有以下表现症状&#xff1a; page.json 中添加 path&#xff0c;无论该 path 是加在在主包中&#xff0c;还是加在 subPackages 的子包中&#xff0c;运行在 APP 中 HBuilder 直接 闪退&#xf…

【JVM内存】系统性排查JVM内存问题的思路

【JVM内存】系统性排查JVM内存问题的思路 背景 前言 遇到过几次JVM堆外内存泄露的问题&#xff0c;每次问题的排查、修复都耗费了不少时间&#xff0c;问题持续几月、甚至一两年。我们将这些排查的思路梳理成一套系统的方法&#xff0c;希望能给对JVM内存分布、内存泄露问题…

开发板与ubuntu不能ping通怎么办?

TOC 第一步&#xff1a;VMware 设置 打开 VMware Workstation Pro 里的 虚拟机 -> 设置 设置网络适配器为桥接模式。这里不要勾选“复制物理网络连接状态”。 因为电脑是 WiFi 上网&#xff0c;所以需要添加一个网络适配器并设置成 NAT 模式&#xff0c;供虚拟机上网。具…

【运维自动化】网络统一监控运维管理解决方案(PPT建设方案)

运维自动化是提升IT运维效率、降低人力成本、增强系统稳定性和可靠性的关键举措。随着业务规模的增长&#xff0c;传统的手动运维方式已难以满足快速响应和高效管理的需求。自动化运维通过脚本、工具和系统平台&#xff0c;实现日常任务自动化执行、故障预警与快速恢复、资源优…

python中的字符串方法

python中的字符串 举个例子先 name 貂蝉开大 #声明了一个字符串 print(name) # 打印了一个字符串 print(name[0:1] #输出貂蝉 print(name[2:3] #输出开大 扩展方法 find() # 查找字符串中某个字符的索引 index_ name.find("貂") print(index_) # 输出 0 …

计算机毕业设计选题推荐-校园消费点评系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

C语言基础题:迷宫寻路(C语言版)

1.题目描述 机器猫被困在一个矩形迷宫里。 迷宫可以视为一个n x m 矩阵&#xff0c;每个位置要么是空地&#xff0c;要么是墙。机器猫只能从一个空地走到其上、下、左、右的空地。 机器猫初始时位于(1,1)的位置&#xff0c;问能否走到(n,m)位置。 2.输入格式 第一行&#xff0…