二分查找
二分查找-II
http://www.nowcoder.com/questionTerminal/4f470d1d3b734f8aaf2afb014185b395
public static int search(int[] nums, int target) { int left=0; int right=nums.length-1; int center; if(left>right||target<nums[left]||target>nums[right]){ return -1; } while (left<=right){ center=(left+right)/2; if(target==nums[center]){ return select(nums,center); }else if(target<nums[center]) { right=center-1; }else { left=center+1; } } return -1; } public static int select(int [] nums,int center){ for(int i=0;i<center;i++){ if(nums[i]==nums[center]){ return i; } } return center; }