二分查找算法

上一篇 / 下一篇  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: 二分查找

 

评分:0

我来说两句

日历

« 2024-04-21  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 33195
  • 日志数: 12
  • 建立时间: 2016-04-06
  • 更新时间: 2016-11-08

RSS订阅

Open Toolbar