function mergeSort(&$array,$left,$right) {
if ($left >= $right) {
return;
};
$middle = floor(($right+$left)/2);
mergeSort($array,$left,$middle);
mergeSort($array,$middle+1,$right);
merge($array,$left,$middle,$right);
}
function merge(&$array,$left,$middle,$right) {
$tempArr = [];
for($i = $left;$i<=$right;$i++) {
$tempArr[$i-$left] = $array[$i];
}
$i = $left;
$j = $middle + 1;
for($k=$left;$k<=$right;$k++) {
if ($i > $middle) {
$array[$k] = $tempArr[$j-$left];
$j++;
} elseif ($j>$right) {
$array[$k] = $tempArr[$i-$left];
$i++;
} elseif($tempArr[$i-$left] > $tempArr[$j-$left]) {
$array[$k] = $tempArr[$j-$left];
$j++;
} else {
$array[$k] = $tempArr[$i-$left];
$i++;
}
}
}
function makeArray($n) {
$array = [];
for ($i = 0;$i<$n;$i++) {
$array[$i] = mt_rand(0,$n);
}
return $array;
}
$array = makeArray(100);
mergeSort($array,0,count($array)-1);
echo implode(",",$array);