二分查找
二分查找-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;
}