1 $arr= [9, 43, 12, 0, 87, 1];2 functionMerge_sort (&$arr){3_merge_sort ($arr,$arr, 0,Count($arr)-1);4 }5 6 function_merge_sort (&$s _arr, &$d _arr,$i,$j){7 if($i>$j){8 return;9 }Ten if($i==$j){ One Echo' AA '; A $d _arr[$i] =$s _arr[$i]; - return false; - } the $tmp _arr=Array(); - $m=intval(($i+$j)/2); - Echo $m; - if($i<=$m){ +_merge_sort ($s _arr,$tmp _arr,$i,$m); - } + if($m+1 <=$j ){ A_merge_sort ($s _arr,$tmp _arr,$m+1,$j); at } -Merge$tmp _arr,$d _arr,$i,$m,$j); - } -$s _arr in $start to $m and $m to $end two sequences are ordered, merging the two sequences into $d_arr - functionMerge (&$s _arr, &$d _arr,$start,$m,$end){ - $i=$start;$j=$m+1;$d _i=$i; in while($i<=$m&&$j<=$end){ - if($s _arr[$i] >$s _arr[$j]){ to $d _arr[$d _i++] =$s _arr[$i++]; + //$i + +; -}Else{ the $d _arr[$d _i++] =$s _arr[$j++]; * } $ }Panax Notoginseng while($i<=$m){ - $d _arr[$d _i++] =$s _arr[$i++]; the //$i + +; + } A while($j<=$end) { the $d _arr[$d _i++] =$s _arr[$j++]; + } -}
PHP implementation Two-way merge sort