PHPで半減(二分)検索を実現

2304 ワード

<?php function binsearch($arr,$key){ $num = count($arr); $left = 0; $right = $num - 1; while ($left <= $right) { $mid = intval(($left + $right)/2); if($arr[$mid] == $key){ return $mid; } if($arr[$mid] > $key){ //key      $right = $mid-1; } if($arr[$mid] < $key){ //key      $left = $mid+1; } } return -1; } $arr = range(1,10); echo "  7:"; echo binsearch($arr,7); //$arr