Почему код алгоритма слияния не работает.
class MergeSort { function divideElements($arr, $l, $r, $container) { if ($l < $r) { $m = (int) (($l + $r) / 2); $this->divideElements($arr, $l, $m, $container); $this->divideElements($arr, ($m + 1), $r, $container); $this->merge($arr, $l, $m, ($m + 1), $r, $container); } return 0; } function merge ($arr, $l1, $r1, $l2, $r2, $container) { $i = $l1; $j = $l2; $k = count($container); while ($i <= $r1 && $j <= $r2) { if ($arr[$i] > $arr[$j]) { $container[$k++] = $arr[$j++]; } else { $container[$k++] = $arr[$i++]; } } while ($j <= $r2) $container[$k++] = $arr[$j++]; while ($i <= $r1) $container[$k++] = $arr[$i++]; } } $ms = new MergeSort(); $arr = [12,11,13,5,6,7]; $n = count($arr) - 1; $container = array(); $sortedA = $ms->divideElements($arr, 0, $n, $container);
Что я уже пробовал:
У меня есть отладка кода, а также помощь с этого сайта : Программа для сортировки слиянием на языке Си-сумасшедший программист[^]
Richard MacCutchan
Может быть, вам стоит спросить сумасшедшего программиста?
Patrice T
"код не работает"не информативно.
Дайте подробности