递归在java二分查找的使用

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

1.递归概念

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

2.两个前提

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

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

3.二分查找的递归实例

/**
*递归实现二分查找
*@paramarr
*@paramleft
*@paramright
*@paramval
*@return
*/
privatestaticintbinarySearch(int[]arr,intleft,intright,intval){
if(val<arr[left]||val>arr[right]||left>right){
return-1;
}
intmiddle=(left+right)/2;
if(val<arr[middle]){
returnbinarySearch(arr,0,middle-1,val);
}
if(val>arr[middle]){
returnbinarySearch(arr,middle+1,right,val);
}else{
returnmiddle;
}
}
原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容