PHP插入排序函数无法进入问题求助,请帮忙排查原因
问题排查:程序无法进入插入排序函数的原因
嘿,我一眼就看出你代码里的两个关键问题,直接导致程序没法正常调用到插入排序函数:
测试代码被错误地放在函数return语句之后
函数中的return $my_array;会立即终止函数执行,后面定义$test_array、输出数组的代码根本不会被执行。而且这些测试逻辑本来就不该写在函数内部,必须放到函数外部的全局代码区域。函数调用语句未完成
你代码末尾的print_r(ins...是不完整的,正确的调用应该是print_r(insert($test_array));,这样才能触发插入排序函数的执行。
修正后的完整代码
<?php function insert($my_array) { for($i=0;$i<count($my_array);$i++){ $val = $my_array[$i]; $j = $i-1; while($j>=0 && $my_array[$j] > $val){ $my_array[$j+1] = $my_array[$j]; $j--; } $my_array[$j+1] = $val; } return $my_array; } // 测试代码移到函数外部 $test_array = array(3, 0, 2, 5, -1, 4, 1); echo "Original Array :\n"; echo implode(', ',$test_array ); echo "\nSorted Array :\n"; print_r(insert($test_array)); ?>
运行这段修正后的代码,就能正常调用插入排序函数并得到排序后的结果啦。
内容的提问来源于stack exchange,提问作者cris
相关产品推荐
相关产品推荐

