技术文章 > java >  java数组 > 正文

递归在java二分查找的使用

小妮浅浅

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

免费视频教程
本教程部分素材来源于网络,版权问题联系站长!
相关文章
  java数组的概念理解
  java数组初始化方式
  java数组遍历的方法
  java数组内存的探究
  java数组转换成list的注意点
  java数组进行翻转的方法有哪些
  java数组中删除元素的操作
  java数组中有哪些面试题
相关视频章节
  Python控制语句之其他语句
  Python控制语句之循环语句
  Python控制语句之条件语句
  Python数据结构之字典
  Python数据结构之元组和集合
作者信息
推荐视频
视频教程分类