关于二分排序所引起的错误
今天遇到个很奇妙的问题 代码输出显示 Notice: Undefined offset: 1
<?php
$num=@$_POST['num'];
$arr=explode(" ",$num);
$findVal=@$_POST['findVal'];
$res=0;
for($a=0;$a<count($arr);$a++){
for($b=0;$b<count($arr)-1;$b++){
if($arr[$b]>$arr[$b+1]){
$res=$arr[$b];
$arr[$b]=$arr[$b+1];
$arr[$b+1]=$res;
}
}
}
print_r($arr);
function _selectArray(&$arr,$findVal,$maxkey,$minkey){
if($maxkey<$minkey){
echo "不存在";
return;
}
$middleIndex=round(($maxkey+$minkey)/2);
if($findVal<$arr[$middleIndex]){
_selectArray($arr,$findVal,$middleIndex-1,$minkey);
}else if($findVal>$arr[$middleIndex]){
_selectArray($arr,$findVal,$maxkey,$middleIndex+1);
}else{
echo '$findVal的key='.$middleIndex."<br/>";
if($findVal==$arr[$middleIndex+1] && $maxkey>$minkey){
_selectArray($arr,$findVal,$maxkey,$middleIndex+1);
}
if($findVal==$arr[$middleIndex-1] && $maxkey>$minkey){
_selectArray($arr,$findVal,$middleIndex-1,$minkey);
}
}
}
?>
<html>
<head></head>
<body>
<form action="multArray.php" method="post">
<input type="text" name="num" value="<?php echo $num;?>"/>
<br/><br/>
<input type="text" name="findVal" value="<?php echo $findVal;?>"/>
<br/><br/>
<input type="submit" value="submit"/>
</form>
<?php
_selectArray($arr,$findVal,count($arr)-1,0);
?>
</body>
</html>
具体处理方案 更改更改php.ini文件中error_repoting的参数为”EALL & Notice 超出最大下标形成的错误
浙公网安备 33010602011771号