PHPアルゴリズム-集計ソート
詳細
考えは1配列を最小2まで分割して配列を比較して3を並べ替える
function merge_sort($arr)
{
$count = count($arr);
if ($count <= 1) {
return $arr;
}
$mid = floor($count / 2);
$left_arr = array_slice($arr, 0, $mid); //
$right_arr = array_slice($arr, $mid);
$left_arr = merge_sort($left_arr);
$right_arr = merge_sort($right_arr);
$arr = merge_arr($left_arr, $right_arr);
return $arr;
}
/**
* [ ] ,
*
* @param array $left_arr
* @param array $right_arr
*/
function merge_arr($left_arr, $right_arr)
{
$tmp_arr = [];
// $i = 0;
while (count($left_arr) && count($right_arr)) {
// echo $i ++ . "
"; //
$tmp_arr[] = $left_arr[0] <= $right_arr[0] ? array_shift($left_arr) : array_shift($right_arr);
print_r($tmp_arr);
}
return array_merge($tmp_arr, $left_arr, $right_arr);
}
考えは1配列を最小2まで分割して配列を比較して3を並べ替える