我一直試圖在php下實現合併排序。但似乎不成功:(無法找到錯誤的根源任何形式的幫助是非常讚賞關於合併排序在php下的問題
function merge_sort(&$input, $start, $end) {
if($start < $end) {
$mid = (int) floor($start + $end/2);
merge_sort($input, $start, $mid);
merge_sort($input, $mid + 1, $end);
merge($input, $start, $mid, $end);
}
}
function merge(&$input, $p, $q, $r) {
$a = $q - $p + 1;
$b = $r - $q;
for($i = $p;$i <= $q;$i++) {
$arr1[] = $input[$i];
}
for($i = $q+1;$i <= $r;$i++) {
$arr2[] = $input[$i];
}
$c = $d = 0;
for($i = $p; $i <= $r; $i++) {
$s = $arr1[$c];
$t = $arr2[$d];
if($a && (($s <= $t) || !$b)) {
$input[$i] = $s;
$a--;$c++;
} else if($b) {
$input[$i] = $t;
$b--;$d++;
}
}
return true;
}
這裏的信息Xdebug的扔回去。!
Fatal error: Maximum function nesting level of '100' reached, aborting!
如果可以的話,這是我工作的PHP實現合併排序:http://blog.richardknop。com/2012/06/merge-sort-php-implementation/ – 2012-06-27 20:41:31