PHP算法-归并排序 博客分类: PHP php排序算法归并
程序员文章站
2024-03-19 12:25:40
...
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 ++ . "\n"; //统计执行次数 $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 合并