从品牌网站建设到网络营销策划,从策略到执行的一站式服务
本篇文章给大家分享的是有关PHP中怎么使用归并排序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、武清ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的武清网站制作公司
归并排序:
归并排序(ERGE-SOQfT)是建立在归并操作,上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成-一个有序表,称为二路归并。我们以代码为例:
结果如下:
归并排序的算法是:
1)将数组拆分成两个数组。 。
2)重复步骤1将数组拆分成最小单元。。
3)申请空间, 使其大小为两个已经排序序列之和,该空间用来存放合并后的序列。
4)设定两个指针, 最初位置分别为两个已经排序序列的起始位置。。
5)比较两个指针所指向的元素, 选择相对小的元素放入到合并空间,并移动指针到下一位置。
6)重复步骤3直到某-指针超出序列尾。。
7)将另-序列剩下的所有元素直接复制到合并序列尾。
代码如下:
$arr = array(4,7,2,1,5,9,3); //归并排序函数 function merge_sort($arr){ //递归出口 $len = count($arr); if($len <= 1) return $arr; //拆分. $middle = floor($len / 2); $left = array_slice($arr,0, $middle); $right = array_slice($arr, $midd1e); //假设左边和右边都已经排好序:二路归并 $m = array(); while(count($left) && count($right)){ //只要$arr1和$arr2里面还有元素,就进行循环 //取出每个数组的第一个元素: 进行比较 $arr3[] = $left[0] < $right[0] ? array_shift($left) : array_shift($right); } //返回结果 return array_merge($m, $left ,$right); } print_r(merge_sort($arr));以上就是PHP中怎么使用归并排序,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。
网站题目:PHP中怎么使用归并排序
当前地址:http://cdkjz.cn/article/isheep.html
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图