java二分查找递归_递归在java二分查找的使用

9e94e97c0cc760f40f294c8818acd343.png

在处理一个比较大的问题上,我们可以拆分成多个小问题,再逐个进行解决,这算是递归比较通俗的理解方法。我们知道二分查找是能用来搜索想要的数据,但遇到数据过大的问题会比较头疼,这就可以结合递归来解决了。下面我们简单介绍下递归的概念和前提,然后分享java中二分查找的递归实例。

1.递归概念

程序调用自身的编程技巧称为递归。将大规模的问题变成小规模的问题,问题不变,规模变小。

2.两个前提

终止条件——当一定条件满足时,函数返回特定值,不再递归调用

递归调用——函数调用自身,其输入值更接近终止条件

3.二分查找的递归实例/**

* 递归实现二分查找

* @param arr

* @param left

* @param right

* @param val

* @return

*/

private static int binarySearch(int[] arr, int left, int right, int val) {

if (val < arr[left] || val > arr[right] || left > right) {

return -1;

}

int middle = (left + right)/2;

if(val < arr[middle]){

return binarySearch (arr,0,middle-1,val);

}

if(val > arr[middle]){

return binarySearch (arr,middle+1,right,val);

}else{

return middle;

}

}

以上就是递归在java二分查找的使用,可以看出递归在分解问题上,能够帮助二分查找有效的提高了效率,大家在使用二分查找时,也不妨考虑结合递归的使用。更多Java学习指路:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值