有序数组的二分查找。数组
这个不用多说了,很基础的题目了。.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