有序數組的二分查找。數組
這個不用多說了,很基礎的題目了。.net
用三個標記去記錄起始位置、中間位置以及末尾位置。由於是有序的,因此能夠經過判斷中間位置的大小來每次減小一半待查找元素個數。code
<?php class Solution { /** * @param Integer[] $nums * @param Integer $target * @return Integer */ function search($nums, $target) { $start = 0; $end = count($nums); do{ $mid = floor(($end+$start)/2); var_dump($start.'-'.$mid.'-'.$end); if($nums[$mid] == $target){ return $mid; } if($nums[$mid]<$target){ $start = $mid+1; } else{ $end = $mid-1; } }while($end>=$start); return -1; } }
若以爲本文章對你有用,歡迎用愛發電資助。leetcode