【归并排序】php实现

来源:互联网 发布:hifiman supermini知乎 编辑:程序博客网 时间:2024/06/06 18:48


.

<?phpfunction 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;}}


0 0