当前位置: 首页 > news >正文

53、PHP 实现归并排序

题目: PHP 实现归并排序

描述:

  • 将指定的两个有序数组(arr1,arr2)合并并且排序
  • 我们可以找到第三个数组,然后依次从两个数组的开始取数据
  • 哪个数据小就先取哪个的,然后删除掉刚刚取过的数据
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;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • git学习准备阶段
  • 构建铁塔基站安全防护网:视频AI智能监控技术引领智慧化转型
  • java~IO流
  • OnlyOffice在线部署
  • C++箭头运算符->
  • 在线短剧APP开发,短剧市场的新赛道新盈利
  • 基于springboot+vue+uniapp的校园快递平台小程序
  • 程序员修炼之路:深入广泛的必修课程
  • 智慧景区导览系统小程序开发
  • Mac设置公钥
  • Linux:shell命令
  • 安装ROS(catkin_pkg找不到)
  • Tkinter简介与实战(1)
  • 正则表达式与文本处理
  • 一句JS代码,实现随机颜色的生成
  • 【node学习】协程
  • 【翻译】babel对TC39装饰器草案的实现
  • 4个实用的微服务测试策略
  • eclipse的离线汉化
  • Fundebug计费标准解释:事件数是如何定义的?
  • golang 发送GET和POST示例
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • python大佬养成计划----difflib模块
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 两列自适应布局方案整理
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 树莓派 - 使用须知
  • 微信支付JSAPI,实测!终极方案
  • 一些关于Rust在2019年的思考
  • 异常机制详解
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • ​你们这样子,耽误我的工作进度怎么办?
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (1)STL算法之遍历容器
  • (4)(4.6) Triducer
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)共用体union的用法举例
  • (function(){})()的分步解析
  • (二十四)Flask之flask-session组件
  • (分类)KNN算法- 参数调优
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (七)Activiti-modeler中文支持
  • (转)Sublime Text3配置Lua运行环境
  • (转)母版页和相对路径
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET 设计模式初探
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .NET程序集编辑器/调试器 dnSpy 使用介绍
  • .NET周刊【7月第4期 2024-07-28】
  • /proc/stat文件详解(翻译)
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [100天算法】-x 的平方根(day 61)
  • [Android] Implementation vs API dependency
  • [BSidesCF 2019]Kookie1