二分查找算法
上一篇 /
下一篇 2016-04-13 15:43:25
/ 个人分类:算法
二分查找算法可以用递归和非递归两种方式实现
1.递归实现二分查找
int binary_search(int[] nums,int low,int high,int des){
if(low>high)
return -1;
mid = (high-low)/2+low;
else if(des==nums[mid])
return mid;
else if(des>mid)
binary_search(nums,mid+1,high,des);
else
binary_search(nums,low,mid-1,des);
}
2.非递归实现二分查找
int binary_search(int[] nums,int low,int high,int des){
low = 0; high = nums.length-1;mid = (low+high)/2;
while(low<high&&nums[mid]!=des){
else if(nums[mid]<des){
right = mid-1;
}
else if(nums[mid]>des){
left = mid+1;
}
mid = (low+high)/2;
}
if(nums[mid]==des)
return mid;
else return -1;
}
收藏
举报
TAG:
二分查找