.
<?php
function merge($arr1,$arr2)
{
//arr1和arr2都是已经排序好的数组
$i=0;
$j=0;
$arr1[]=999999;
$arr2[]=999999;
$arr=array();
for($k=0;$k<count($arr1)+count($arr2)-2;$k++)
{
if($arr1[$i]<$arr2[$j])
{
$arr[$k]=$arr1[$i];
$i++;
}
else
{
$arr[$k]=$arr2[$j];
$j++;
}
}
return $arr;
}
function mergesort($arr)
{
if(count($arr)<=1)
{
return $arr;
}
else
{
//拆分arr
$mid=intval(count($arr)/2);
$left_arr=array_slice($arr,0,$mid);
$right_arr=array_slice($arr,$mid);
$left_arr=mergesort($left_arr);
$right_arr=mergesort($right_arr);
$arr=merge($left_arr,$right_arr);
// var_dump($arr);
return $arr;
}
}